怎樣才能用js生成xmldom對象,并且在firefox中也實(shí)現(xiàn)xml數(shù)據(jù)島?
更新時(shí)間:2006年12月22日 00:00:00 作者:
一般來說,xml文件都是從外部載入的,那么我們?nèi)绾沃挥胘s生成xml對象呢?下面的程序?qū)崿F(xiàn)了這一點(diǎn),只需要輸入字符串形式的xml數(shù)據(jù),就可以轉(zhuǎn)換為xml對象,并且兼容firefox。
用這種方法,我們也可以在firefox中實(shí)現(xiàn)xml數(shù)據(jù)島,即用xmp標(biāo)簽來裝載xml字符串,然后調(diào)用createXml函數(shù)來生成xml。
由于firefox中不支持節(jié)點(diǎn)的.xml屬性,所以需要給它添加該屬性,使之與IE一致
<body>
<xmp id=x1>
<root>
<node>test</node>
</root>
</xmp>
</body>
<script>
if(!document.all)
XMLDocument.prototype.__defineGetter__("xml",function(){return new XMLSerializer().serializeToString(this)})
function createXml(str){
if(document.all){
var xmlDom=new ActiveXObject("Microsoft.XMLDOM")
xmlDom.loadXML(str)
return xmlDom
}
else
return new DOMParser().parseFromString(str, "text/xml")
}
xml=createXml(document.getElementById("x1").innerHTML)
alert(xml.xml)
</script>
用這種方法,我們也可以在firefox中實(shí)現(xiàn)xml數(shù)據(jù)島,即用xmp標(biāo)簽來裝載xml字符串,然后調(diào)用createXml函數(shù)來生成xml。
由于firefox中不支持節(jié)點(diǎn)的.xml屬性,所以需要給它添加該屬性,使之與IE一致
復(fù)制代碼 代碼如下:
<body>
<xmp id=x1>
<root>
<node>test</node>
</root>
</xmp>
</body>
<script>
if(!document.all)
XMLDocument.prototype.__defineGetter__("xml",function(){return new XMLSerializer().serializeToString(this)})
function createXml(str){
if(document.all){
var xmlDom=new ActiveXObject("Microsoft.XMLDOM")
xmlDom.loadXML(str)
return xmlDom
}
else
return new DOMParser().parseFromString(str, "text/xml")
}
xml=createXml(document.getElementById("x1").innerHTML)
alert(xml.xml)
</script>
相關(guān)文章
存儲(chǔ)于xml中需要的HTML轉(zhuǎn)義代碼
在數(shù)據(jù)提交到數(shù)據(jù)庫之前的簡單HTML字符轉(zhuǎn)意,防止javascript惡意代碼,因?yàn)轫?xiàng)目中用到了輸出為xml,所以在輸出之前還要進(jìn)行二次轉(zhuǎn)意,把數(shù)據(jù)庫中之前加入的<br>轉(zhuǎn)義為正常。2009-11-11