2017-09-16 30 views
0

我有XML如下:獲取元素在XML通過使用javascript

<a> 
    <a> 
    <d>0</d> 
    </a> 
    <a> 
    <d>99</d> 
    </a> 
</a> 

這是我編寫JavaScript代碼。

var a = document.getElementsByTagName("a"); 
var d = a[1].getElementsByTagName("d")[0].firstChild.data; 
document.write("d = " + d); 

結果是d = 0但我期望的結果是d = 99

請問您能幫我嗎?

我想僅輸入索引1 (a[1])我不想輸入索引2

+0

可能的複製https://stackoverflow.com/questions/4495569/how-do-i-retrieve-the-value-of-a-specific-xml-node-by-path – Niladri

+1

可能的複製[如何通過路徑檢索特定XML節點的值?](https://stackoverflow.com/questions/4495569/how-do-i-retrieve-the-value-of-a-specific-xml-node-旁路) – Bakudan

回答

0

所以基本上你正在尋找a[2]

<a> <-- a[0] 
    <a> <-- a[1] 
    <d>0</d> 
    </a> 
    <a> <-- a[2] 
    <d>99</d> 
    </a> 
</a> 

這裏是更新:

var a = document.getElementsByTagName("a"); 
var d = a[2].getElementsByTagName("d")[0].firstChild.data; 
      ^---- this is what changed 
document.write("d = " + d); 
1

您可以使用DOMParser函數來創建一個xmlDoc並從中讀取所需的值。問題出在你的元素選擇器中。的

var text = "<a> <a> <d>0</d></a><a><d>99</d></a></a>" 
parser = new DOMParser(); 
xmlDoc = parser.parseFromString(text,"text/xml"); 
var dNode = xmlDoc.querySelectorAll('a a:last-child d')[0]; 
var dNodeValue = dNode.innerHTML; 

console.log(dNodeValue); 
// 99