生成xml dom对象有多种方式,其中最常用的方法是使用浏览器自带的xml解析库或者使用第三方的xml解析库。下面我们分别介绍如何使用浏览器自带的xml解析库和使用第三方的xml解析库生成xml dom对象,并且在firefox中实现xml数据岛。
使用浏览器自带的xml解析库
生成xml dom对象
可以使用下面的代码生成xml dom对象:
var xmlStr = "<bookstore><book><title>The Great Gatsby</title><author>F. Scott Fitzgerald</author><year>1925</year></book></bookstore>";
var xmlDoc;
if (window.DOMParser) {
var parser = new DOMParser();
xmlDoc = parser.parseFromString(xmlStr, "text/xml");
} else {
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = false;
xmlDoc.loadXML(xmlStr);
}
这个代码中,我们创建了一个字符串类型的xml数据,并使用DOMParser将xml数据解析成xml dom对象。
实现xml数据岛
可以使用object和param标签来实现xml数据岛。object标签通常用于将外部资源嵌入到HTML文档中,而param标签通常用于设置object的属性。
下面是一个简单的xml数据岛示例:
<object data="books.xml" type="text/xml" id="myData"></object>
<script>
var x = document.getElementById("myData").contentDocument.documentElement;
console.log(x.getElementsByTagName("book")[0].childNodes[0].nodeValue);
</script>
这个示例中,我们将books.xml数据嵌入了HTML文档中,并设置了id属性为myData。在后面的script标签中,我们使用getElementById获取了这个object元素,并使用contentDocument属性获取了object元素所指向的xml dom对象,并打印xml dom对象中第一个book元素的第一个子节点(title元素)的nodeValue。
使用第三方的xml解析库
生成xml dom对象
使用第三方的xml解析库可以更方便的生成xml dom对象。这里我们将使用jQuery的parseXML函数来生成xml dom对象。
可以使用下面的代码生成xml dom对象:
var xmlStr = "<bookstore><book><title>The Great Gatsby</title><author>F. Scott Fitzgerald</author><year>1925</year></book></bookstore>";
var xmlDoc = $.parseXML(xmlStr);
这个代码中,我们创建了一个字符串类型的xml数据,并使用jQuery的parseXML函数将xml数据解析成xml dom对象。
实现xml数据岛
使用第三方的xml解析库同样可以使用object和param标签来实现xml数据岛。下面是一个使用jQuery实现xml数据岛的示例:
<object data="books.xml" type="text/xml" id="myData"></object>
<script>
var x = $($.find("#myData")[0].contentDocument);
console.log(x.find("book").eq(0).find("title").text());
</script>
这个示例中,我们依然将books.xml数据嵌入了HTML文档中,并设置了id属性为myData。在后面的script标签中,我们使用jQuery的find函数获取了这个object元素,并使用contentDocument属性获取了object元素所指向的xml dom对象,然后打印xml dom对象中第一个book元素的title元素的文本内容
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:怎样才能用js生成xmldom对象,并且在firefox中也实现xml数据岛? - Python技术站