Javascript 另一个GetelementbyTagname中的第二个GetelementbyTagname

Javascript 另一个GetelementbyTagname中的第二个GetelementbyTagname,javascript,xml,Javascript,Xml,我正在用JavaScript将XML字符串解析为XML文档。XML结构可能如下所示: <parent> <parent2> <x> <y1/> <xyz> <tra/> <xyz> <y2/> </x> <x

我正在用JavaScript将XML字符串解析为XML文档。XML结构可能如下所示:

 <parent>
     <parent2>
        <x>
           <y1/>
           <xyz>
               <tra/>
           <xyz>
           <y2/>
        </x>
        <x>
           <y1/>
        </x>
        ..
     </parent2>
 </parent>
那么我该如何解决这个问题呢?
x
的名称和位置甚至是固定的,可能不会更改。但是x内部的内容可以改变其结构。所以我想使用
getElementsByTagName()
,因为我不知道树中的确切位置!但是如何使用
getElementsByTagName()
nested

谢谢你的帮助


更新:XML的一切都很好!例如:
alert(xmldoc.getElementsByTagName('x')[2].getElementsByTagName('tra')[0].firstChild.nodeValue)谢谢你的帮助

函数不返回XML文档。它返回一个元素数组。因此,您不能再次调用
getElementsByTagName
函数。

XML文档也可以正常工作!例如:
alert(xmldoc.getElementsByTagName('x')[2].getElementsByTagName('tra')[0].firstChild.nodeValue)

GetelementbyTagname、getElementsbyTagName、getElementsbyTagName、GetelementbyTagname
。在一个问题中,你有4个相同方法的版本,它们都是不正确的。我要说检查以确保您使用的是
getElementsByTagName()
。这是不正确的(我和您的想法一样)!您可以调用函数两次并得到结果!可以再次调用它的唯一原因是,在某些JavaScript实现中,当数组中只有一项时,它允许您直接对数组(array.something)进行操作,而不是访问数组中的第一项(array[0].something)。这样做永远都不安全,因为您永远不知道数组中有什么。可能有多个项目,或者您所在的系统不允许这样做。不管怎样,你的代码都会被破解。
var cX=xmldoc.getElementsByTagName('x');
alert(cX.getElementsByTagName('tra')[0].innerHTML)