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

标签 javascript html xml xpath xml-parsing

我目前正在使用 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>");
}
}

但是,在我的第三个节点值查询(自定义字段)中,我尝试获取 xml 中具有以下路径的节点的文本内容:

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

如何获取customfieldvalue的textContent值?父节点必须具有 id=10080 的属性,因为不同的项目具有不同数量的自定义字段标记,这些标记具有不同的子节点 id。

请帮忙!!!

我只需要这个就可以在 FireFox 中工作...

---编辑---

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

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

那么我该如何更换线路

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

在 javascript 循环中提取我提供的 Xpath 的文本内容?我需要这个来为每个拉取这个 Xpath

最佳答案

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

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

尝试一下。有多种方法可以从 javascript 读取和解析 XML。我不会推荐 w3schools 进行学习。追根溯源,尝试MDN下次;)

希望对你有帮助

关于javascript - 无法获取XML中的节点值,如何获取?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11640791/

相关文章:

jquery - 尝试使用负边距删除 CSS 图像网格上的细线

html - 如何将div附加到html中的特定维度

java - 使用 DOM Parser 解析 xml 的困难

android - 在 Fragments 之前使用什么?

javascript - 结合 async.each 和 async.series

javascript - Google 跟踪代码管理器多次加载 Analytics.js

html - css如何在中心圆旁边创建2条水平线?

javascript - XML 解析错误 : no root element found Location in Console FF

javascript - Firefox 中的日期解析

javascript - 外部 JSON 文件的标记未显示在谷歌地图中