0

インターネット上でこの問題について議論している多くの質問や記事があることは知っていますが、どういうわけかこれを機能させることができません。基本的なものが欠けていると確信していますが、見つかりません。

解析自体:

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 変数の末尾に 1 文字だけ追加しても、解析が正しく機能しません。また、この動作に関する便利なチュートリアルを教えていただけますか?

4

2 に答える 2

4

複数のルートノードがあるため、文字列は有効なXMLではありません。次のような意味ですか?

<article><name>Some article</name><other>Something else</other></article>
于 2012-04-29T19:04:14.480 に答える
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 ....
于 2012-04-29T19:04:22.220 に答える