我目前正在阅读xml文件,到目前为止我已经成功读取了xml文件但接下来出现了问题,而不是逐个读取xml文件标签我想要读取items标签内的标签和提取每一个的价值
到目前为止这是我得到的
var xmlDoc;
var xhr = new XMLHttpRequest();
xhr.open('GET', 'prueba.xml');
xhr.send();
xhr.onreadystatechange = function(){
xmlDoc = xhr.responseXML;
var items = xmlDoc.getElementsByTagName("items")[0];
for(i=0;i<items.length;i++){
item = items[i];
$(item).each(function(i,val){
console.log(val)
})
}
}
&#13;
这里是xml文件
<!DOCTYPE StreamControl>
<items>
<timestamp>1510794812</timestamp>
<nombre>ayy</nombre>
</items>
&#13;
我认为我关闭了,有什么提示吗?
答案 0 :(得分:1)
试试这个:使用node.firstChild.nodeType === 3 && node.firstChild.textContent.trim() !== ''
过滤文字;
var xmlDoc;
var xhr = new XMLHttpRequest();
xhr.open('GET', 'prueba.xml');
xhr.send();
xhr.onreadystatechange = function () {
if (xhr.readyState === 4 && xhr.status === 200) {
xmlDoc = xhr.responseXML;
var items = xmlDoc.getElementsByTagName("*");
let res = {};
Array.from(items).forEach(node => {
if (node.firstChild.nodeType === 3 && node.firstChild.textContent.trim() !== '') {
res[node.nodeName] = node.firstChild.textContent
}
});
console.log(res);//{timestamp: "1510794812", nombre: "ayy"}
}
}