我目前在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:
项目 - &gt; customfields - &gt; customfield id = 10080 - &gt; customfieldvalue
如何获取customfieldvalue的textContent值?父节点必须具有id = 10080的属性,因为不同的项具有不同数量的具有不同子节点ID的自定义字段标记。
请帮忙!!!
我只需要在FireFox中工作......
--- --- EDIT
好的,所以我发现我需要使用的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
答案 0 :(得分:0)
就我而言,你只需要打电话
document.write(x[i].getElementsByTagName("customfields")[0].getElementsByTagName("customfield").text;
试一试。有几种方法可以从javascript中读取和解析XML。我不会推荐w3schools学习。转到根,下次尝试MDN;)
我希望它有所帮助