我想在JavaScript中访问XML对象的textContent属性。根元素有几个子元素,这些子元素也有一些自己的子元素。为了获取第一层次的子元素,我只需遍历根元素的childNodes数组。但是要获取“grandchild”的值,我想使用类似于getElementsByTagName()
的方法,但它不起作用。目前,我只是再次遍历所有子元素,并检查每个节点的nodeName属性以获取我的值。有没有一种方法可以通过名称获取子对象?
XML(注意:我内部获取的XML文档未经格式化,没有空格,没有#text节点):
<root>
<element>
<child1>content</child1>
<child2>content</child2>
<child3>content</child3>
</element>
<element>
<child1>content</child1>
<child2>content</child2>
<child3>content</child3>
</element>
</root>
我尝试过的方法:
xmlDoc = xmlhttp.responseXML;
for(i = 0; i < xmlDoc.documentElement.childNodes.length; i++)
{
key = xmlDoc.documentElement.childNodes[i];
alert(key.getElementsByTagName('child1')[0].textContent);
}
这导致一个消息框:未定义,以及一个控制台错误:TypeError:key.getElementsByTagName(...)[0]未定义
浏览器:Firefox 26
也许这是DOM对象的问题,我是以下方式创建它的:
var xmlhttp;
if (window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
xmlhttp.onreadystatechange=function()
{
if(xmlhttp.readyState==4 && xmlhttp.status==200)
{
xmlDoc = xmlhttp.responseXML;
child1
的任何子节点... - CBroe