返回XML节点值
问题描述:
我需要从URL返回所有XML值。返回XML节点值
我以前使用的网址,它工作正常。
这是我到目前为止有:
function displayXML(xml) {
var devices = xml.getElementsByTagName("device");
for (var i = 0; i < devices.length; i++) {
var deviceDetails = devices[i].children;
for (j = 0; j < deviceDetails.length; j++) {
console.log(devices[i].childNodes[j].nodeValue);
}
}
}
它设法返回值适量:33个33个标记值
但它返回null为每一个。但是,XML文件包含每个标签的值。
感谢
答
基于一个答案question
XML元素的nodeValue
属性始终是零。元素的值实际上存储在元素内的文本节点内,因此您需要再往下找一个孩子才能得到它。试试这个
var devices = xml.getElementsByTagName("device")[i].firstChild.nodeValue;
我觉得你的脚本应该是这个样子与firstChild
试图获得的价值时插入:
function displayXML(xml) {
var devices = xml.getElementsByTagName("device");
for (var i = 0; i < devices.length; i++) {
var deviceDetails = devices[i].children;
for (j = 0; j < deviceDetails.length; j++) {
console.log(devices[i].childNodes[j].firstChild.nodeValue);
}
}
}
+0
工作,谢谢。 – Kieran
+0
@KieranMelia真棒,很高兴听到它。不知道你是否看到我更新的答案,但我认为我的脚本的变化应该工作,尽管它迄今为止尚未测试。 –
嘿,如果下面的答案帮助你,请标记为接受的答案。 –
关于[您的其他问题](https://stackoverflow.com/q/45935708/1218980),请不要在没有正当理由的情况下删除您的问题,这可能对未来某个人有用,这就是为什么SO质量好高。 –