通过微软的 XML 解析器加载 XML
微软的 XML 解析器内建于 Internet Explorer 5 及更高版本中。
下面的 JavaScript 片段把 XML 文档 ("books.xml") 载入了解析器:
xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async="false"; xmlDoc.load("books.xml");
代码解释:
- 第一行创建空的微软 XML 文档对象
- 第二行关闭异步加载,这样可确保在文档完整加载之前,解析器不会继续执行脚本
- 第三行告知解析器加载名为 "books.xml" 的文档
下面的 JavaScript 片段把名为 txt 的字符串载入解析器中:
xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async="false"; xmlDoc.loadXML(txt);
注释:loadXML() 方法用于加载字符串(文本),而 load() 用于加载文件。
在 Firefox 及其他浏览器中的 XML 解析器
下面的 JavaScript 片段把 XML 文档 ("books.xml") 载入了解析器:
xmlDoc=document.implementation.createDocument("","",null); xmlDoc.async="false"; xmlDoc.load("books.xml");
代码解释:
- 第一行创建空的 XML 文档对象
- 第二行关闭异步加载,这样可确保在文档完整加载之前,解析器不会继续执行脚本
- 第三行告知解析器加载名为 "books.xml" 的文档
下面的 JavaScript 片段把名为 txt 的字符串载入解析器中:
parser=new DOMParser(); xmlDoc=parser.parseFromString(txt,"text/xml");
代码解释:
- 第一行创建一个空的 XML 文档对象
- 第二行告知解析器加载名为 txt 的字符串
注释:Internet Explorer 使用 loadXML() 方法来解析 XML 字符串,而其他浏览器使用 DOMParser 对象。
注释:Internet Explorer 使用 loadXML() 方法来解析 XML 字符串,而其他浏览器使用 DOMParser 对象。
XML DOM - DOMParser 对象
解析 XML 标记来创建一个文档。
构造函数
new DOMParser()
说明
DOMParser 对象解析 XML 文本并返回一个 XML Document 对象。要使用 DOMParser,使用不带参数的构造函数来实例化它,然后调用其 parseFromString() 方法:
var doc = (new DOMParser()).parseFromString(text)
IE 不支持 DOMParser 对象。相反,它支持使用 Document.loadXML() 的 XML 解析。
注意,XMLHttpRequest 对象也可以解析 XML 文档。参阅 XMLHttpRequest 的 responseXML 属性。
DOMParser.parseFromString()
解析 XML 标记
语法
parseFromString(text, contentType)
text 参数是要解析的 XML 标记。
contentType 是文本的内容类型。可能是 "text/xml" 、"application/xml" 或 "application/xhtml+xml" 中的一个。注意,不支持 "text/html"。
返回值
保存 text 解析后表示的一个 Document 对象。参阅 Document.loadXML(),了解这个方法的一个特定于 IE 的替代。
加载函数! 与解析的区别?
<html>
<body>
<script type="text/javascript">
try //Internet Explorer
{
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
}
catch(e)
{
try //Firefox, Mozilla, Opera, etc.
{
xmlDoc=document.implementation.createDocument("","",null);
}
catch(e) {alert(e.message)}
}
try
{
xmlDoc.async=false;
xmlDoc.load("/example/xdom/books.xml");
document.write("xmlDoc is loaded, ready for use");
}
catch(e) {alert(e.message)}
</script>
</body>
</html>
相当于
<html>
<head>
<script type="text/javascript" src="/example/xdom/loadxmldoc.js">
</script>
</head>
<body>
<script type="text/javascript">
xmlDoc=loadXMLDoc("/example/xdom/books.xml");
document.write("xmlDoc 已加载,可以使用。");
</script>
</body>
</html>