2010-10-24 41 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

相關問題