0

我有一个 XML 对象,我想返回可能有多个子节点的节点上的文本值。

  <binding name="s"><bnode>b1fff4d00000000fe</bnode></binding>
  <binding name="p"><uri>http://cidoc-crm.org/P1F.is_identified_by</uri></binding>
  <binding name="zebra"><literal>copper</literal></binding>

在上述情况下,如果我可以指定绑定的名称值,我想返回每个节点中的文本。

伪代码:获取绑定名称值 == "s" 的文本;

我试过这个

x[i].getElementsByTagName("binding")[0].childNodes[0].nodeValue

所以在这种情况下,bnode 的子节点名称是什么并不重要。

我希望那很清楚

谢谢。

4

2 回答 2

2

获取文本内容的最简单方法是

x[i].getElementsByTagName("binding")[0].textContent;

但是,textContent在 IE < 9 中不受支持,因此您需要导航到这些浏览器中的文本节点:

x[i].getElementsByTagName("binding")[0].firstChild.firstChild.data;

演示:http: //jsfiddle.net/p2SrZ/

于 2012-08-03T09:49:00.223 回答
1

您正在尝试获取nodeValue将始终导致null. [1] 你想要的是nodeValue包含的文本节点的。因此,不幸的是,您必须在此语句中添加另一层,您的语句变为

x[i].getElementsByTagName("binding")[0].childNodes[0].childNodes[0].nodeValue;

这将拉取内部元素的文本节点值。

[1] 假引用只需点击链接即可。

于 2012-08-03T09:52:14.393 回答