使用javascript在xml中获取元素

时间:2017-09-16 14:47:19

标签: javascript xml

我有xml如下:

<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.

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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);