显示标签为“xml”的博文。显示所有博文
显示标签为“xml”的博文。显示所有博文

2009年4月9日星期四

一段解决Firefox下Xslt中disable-output-escaping无效的JavaScript

在Firefox下浏览Xml+Xsl的页面时会出现由于disable-output-escaping属性无效而将html代码直接显示出来的问题,下面这段代码是利用jQuery写出来解决这个问题的,只需要对原有的Xsl代码做少量修改就可以了。


$(document).ready(function() {
    if (!$.browser.mozilla) return;
    $.each($("*[decodeable]"), function(i, el) {
        if (el.decoded) return;
        el.decoded = true;
        $(el).html($(el).text());
    });
});


要想使这段代码有效,你需要在你的<xsl:value-of/>外面加上一个带有decodeable属性的html元素就可以了。

<span decodeable="decodeable">
<xsl:value-of select="item/content" disable-output-escaping="yes"/>
</span>

下面这段是没有使用jQuery的代码

if (window.addEventListener) {
    window.addEventListener("load", function() {
        var els = [document];
        while (0 < els.length) {
            var el = els.pop();
            if (el.hasAttribute && el.hasAttribute("decodeable") && !el.decoded) {
                el.decoded = true;
                el.innerHTML = el.firstChild.data;
            }
            for (var i = 0; el.childNodes.length > i; i++) {
                els.push(el.childNodes[i]);
            }
        }
    }, false);
}

2008年12月28日星期日

DBML to XML

最近在研究Linq,在使用Linq to SQL的时候需要给数据表加前缀,这个前缀要求的发布后可以调整,但是Linq中没有发现现成的方法。后来在浏览了网上的一些文章(《Linq to SQL Xml Based Mapping》)后发现了利用XmlMappingSource解决这个问题的方法,这种方法需要编写Xml格式的Mapping文件。因为每次都要把dbml文件改成xml很麻烦,索性写了一个小程序。

文件下载:dbml2xml.exe