我知道有很多问题和文章在互联网上讨论这个问题,但我不知道怎么办这个问题。我很确定我遗漏了一些基本的东西,但我找不到它。
解析本身:
var str="<article>Some article</article><other>Other stuff</other>";
var xmlDoc = null;
if (window.DOMParser) {
var parser = new DOMParser();
xmlDoc = parser.parseFromString(str,"text/xml");
}
else if (window.ActiveXObject) {
xmlDoc = new ActiveXObject ("Microsoft.XMLDOM");
xmlDoc.async = false;
xmlDoc.loadXML(str);
}
var node = xmlDoc.getElementsByTagName("article")[0].childNodes[0].nodeValue;
alert (node);
但它不起作用,FF说:
xmlDoc.getElementsByTagName("article")[0] is undefined
此外,如果我使用这样的str:
var str="<article>Some article</article>";
所以问题是,它为什么不起作用?即使我只将一个字符附加到str变量的末尾,解析也不能正常工作。你能否指出一些关于这种行为的有用教程?
答案 0 :(得分:4)
您的字符串不是有效的XML,因为它有多个根节点。你的意思是:
<article><name>Some article</name><other>Something else</other></article>
答案 1 :(得分:1)
尝试使用
var str="<root><article>Some article</article><other>Other stuff</other></root>";
var node = xmlDoc.documentElement.getElementsByTagName("article")[0].childNodes[0].nodeValue;
documentElement property returns the root tag of an xml document , once you get the root tag, next you can extract elements by tag name , child nodes ....