如果我不知道元素名称,如何从XML文档中访问元素。
<test_data>
<title>test data</title>
<test id="1">
<test_1>
<example_1>Example 1 Text</example_1>
<example_2>Example 2 Text</example_2>
<example_3>Example 3 Text</example_3>
</test_1>
</test>
<test id="2">
<test_2>
<example_1>Example 1 Text</example_1>
<example_2>Example 2 Text</example_2>
<example_3>Example 3 Text</example_3>
</test_2>
</test>
<test id="3">
<test_3>
<example_1>Example 1 Text</example_1>
<example_2>Example 2 Text</example_2>
<example_3>Example 3 Text</example_3>
</test_3>
</test>
</test_data>
如何访问元素“test_1”,“test_2”,“test_3”。在实践中,我不会知道这些元素的名称,但我会知道索引。
我不能使用getElementsByTagName,因为此名称对于此元素是动态的。我想检索节点名称。
我已尝试以下方法来检索元素。
x = xmlhttp.responseXML.documentElement.getElementsByTagName("test");
x[0].firstChild.nodeName;
这将返回#text而不是节点名称。
有什么建议吗?
答案 0 :(得分:0)
的 JS 强> 的
var xml = "<test_data><title>test data</title><test id='1'><test_1><example_1>Example 1 Text</example_1><example_2>Example 2 Text</example_2><example_3>Example 3 Text</example_3></test_1></test><test id='2'><test_2><example_1>Example 1 Text</example_1><example_2>Example 2 Text</example_2><example_3>Example 3 Text</example_3></test_2></test><test id='3'><test_3><example_1>Example 1 Text</example_1><example_2>Example 2 Text</example_2><example_3>Example 3 Text</example_3></test_3></test></test_data>";
if (window.DOMParser)
{
parser=new DOMParser();
xmlDoc=parser.parseFromString(xml,"text/xml");
}
else // Internet Explorer
{
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async=false;
xmlDoc.loadXML(xml);
}
var x=xmlDoc.getElementsByTagName("test");
console.log(x);
for (i=0;i < x.length; i++){
console.log(x[i].childNodes[0].nodeName);
}