2010-10-24 42 views
0

我正在使用Javascript解析XML字符串到XML文档。 XML结构可能是这样的:另一个GetelementbyTagname中的第二个Getelementby标签

<parent> 
    <parent2> 
     <x> 
      <y1/> 
      <xyz> 
       <tra/> 
      <xyz> 
      <y2/> 
     </x> 
     <x> 
      <y1/> 
     </x> 
     .. 
    </parent2> 
</parent> 

现在我想通过x迭代。我做了所有的时间getElementsByTagName()但如果我想进去x节点我使用这个函数两次,这doensnot工作:

var cX=xmldoc.getElementsByTagName('x'); 
alert(cX.getElementsByTagName('tra')[0].innerHTML) 

那么我怎么能解决这个问题? x的名称和位置甚至是固定的,可能不会改变。但是x中的内容可以在其结构中改变。所以我想用getElementsByTagName()因为我不知道树中的exakt位置!但如何使用getElementsByTagName()嵌套?

感谢您的帮助!

更新:一切工作正常的XML也!例如:alert(xmldoc.getElementsByTagName('x')[2].getElementsByTagName('tra')[0].firstChild.nodeValue);感谢您的帮助!

+1

'GetelementbyTagname,getElementsbyTagName,getElementsbyTagname,getElementByTagname'。在一个问题中,你有4个版本的相同方法,并且它们都是不正确的。我会说检查以确保您使用'getElementsByTagName()'。 – user113716 2010-10-24 20:39:57

回答

0

一切工作正常与XML文档!例如:alert(xmldoc.getElementsByTagName('x')[2].getElementsByTagName('tra')[0].firstChild.nodeValue);

0

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

+0

这是不正确的(我以为像你一样)!您可以调用该函数两次并获得结果! – rokdd 2010-10-26 19:39:47

+0

你可以再次调用它的唯一原因是,在JavaScript的某些实现中,当你有一个只包含一个项目的数组时,它可以让你直接操作数组(array.something)而不是访问第一个项目数组(array [0] .something)。这样做永远不会安全,因为你永远不知道数组中的内容。可能有多个项目 - 或者你可能在一个不允许的系统中。无论哪种方式,你的代码都会中断。 – 2010-10-26 20:45:49

相关问题