无法获取XML中的节点值,如何获取

Cant get node value in XML, how can I get it?

本文关键字:获取 何获取 节点 XML      更新时间:2024-02-28

我目前使用w3cschools上的一个简单的循环XML脚本,效果很好:

 if (p1p2total == 5)
  {
if (window.XMLHttpRequest)
 {// code for IE7+, Firefox, Chrome, Opera, Safari
 xmlhttp=new XMLHttpRequest();
 }
else
 {// code for IE6, IE5
 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
 }
xmlhttp.open("GET","xml/SearchRequest-12437.xml",false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;
var x=xmlDoc.getElementsByTagName("item");
for (i=0;i<x.length;i++)
{
document.write("<tr><td class='c3c1'>");
document.write(x[i].getElementsByTagName("key")[0].childNodes[0].nodeValue);
document.write("</td><td class='c3c2b'>");
document.write(x[i].getElementsByTagName("priority")[0].childNodes[0].nodeValue);
document.write("</td><td class='c3c3b'>");
document.write(x[i].getElementsByTagName("customfields")[0].getElementsByTagName("customfield")
   [0].getAttributeNode("id").textContent);
document.write("</td></tr>");
}
}

然而,在我的第三个节点值查询customfields中,我试图获得xml中具有以下路径的节点的textContent:

项目->自定义字段->自定义字段id=10080->自定义字段值

如何获取customfieldwalue的textContent值?父节点必须具有id=10080的属性,因为不同的项具有不同数量的customfield标记,这些标记具有不同的子节点id。

请帮忙!!!

我只需要这个在火狐工作。。。

---编辑---

好的,所以我发现我需要使用的xpath是:

    ./customfields/customfield[@id='customfield_10080']/customfieldvalues/customfieldvalue/text()

那么我该如何更换

    document.write(x[i].getElementsByTagName("customfields")[0].getElementsByTagName("customfield")[0].getAttributeNode("id").textContent);

以提取我提供的Xpath的文本内容,同时保留在javascript循环中?我需要这个来为每个

提取这个Xpath

就我而言,你只需要打电话给

document.write(x[i].getElementsByTagName("customfields")[0].getElementsByTagName("customfield").text;

试试看。有几种方法可以从javascript中读取和解析XML。我不会推荐w3schools学习。转到根目录,下次尝试MDN;)

我希望它能帮助