【问题标题】:Cant get node value in XML, how can I get it?无法在 XML 中获取节点值,我该如何获取?
【发布时间】:2012-07-23 08:34:02
【问题描述】:

我目前使用 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 中获取具有以下路径的节点的 textContent:

item -> customfields -> customfield id=10080 -> customfieldvalue

如何获取 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

【问题讨论】:

    标签: javascript html xml xpath xml-parsing


    【解决方案1】:

    就我而言,您只需致电

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

    试一试。有几种方法可以从 javascript 读取和解析 XML。我不会推荐 w3schools 来学习。去根,下次试试MDN ;)

    希望对你有帮助

    【讨论】:

    • 那行不通。我需要能够从名为customfieldvalue 的customfield 的子项中获取nodevalue。问题是我需要指定具有属性 id=100800 的 customfield 节点“感谢您将我指向 MDN,我现在签出!!
    • 还是没有运气...有没有办法只为一个条目使用 xpath 并让它正确循环?
    • 我在我的原始帖子中添加了一个编辑,其中包括我试图读取的节点的 xpath。感谢大家的帮助!
    猜你喜欢
    • 2012-09-01
    • 2013-03-19
    • 1970-01-01
    • 2017-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多