XML文档和XML之间有什么区别? XML字符串?

时间:2012-12-22 23:34:31

标签: javascript xml

数据之间是否有任何内容差异?

也许文档可能有其他元数据,如作者,上次编辑的日期等等?

我试图理解为什么w3学校的学习实例有两种完全不同的方法来加载xml字符串和xml文档。

例如,说两个来源都包含<book><page1>Hello World!</page1></book>

提供的第一个方法是使用XMLHttpRequest()和responseXML加载js对象xmlDoc,第二个使用DOMParser()和parseFromString()

每种方法创建的JS对象如何彼此不同?

3 个答案:

答案 0 :(得分:1)

两种方式的结果都是表示xml结构的对象。

第一种方法是使用XMLHttpRequest从远程位置加载(和解析)xml文档。

第二种方式假设您的脚本中已经有xml内容(存储在变量中,无论它是如何到达的)。然后将xml字符串内容解析为对象,以便您可以轻松地对xml数据执行操作(这在字符串上是不可能的)

您可以使用生成的xml对象,如下所示:

var p = new DOMParser()
xmldoc = p.parseFromString('<book><page1>Hello World!</page1></book>', 'text/xml')

xmldoc.childNodes.item(0) // the <book> tag
xmldoc.childNodes.item(0).childNodes.item(0) // the <page1> tag
xmldoc.childNodes.item(0).childNodes.item(0).textContent // "Hello World!"

答案 1 :(得分:0)

第一个示例从您仍需加载的XML文件构建XML树。它使用XMLHttpRequest,它从Web服务器加载XML文件并自动解析它以创建XML文档。

第二个示例从您已经拥有的包含XML代码的字符串构建XML树。

答案 2 :(得分:0)

xml文档应以xml声明开头:

http://www.w3.org/TR/REC-xml/#sec-prolog-dtd

此声明可能不存在于xml字符串中。