使用javascript读取xml标记中的所有值

使用javascript读取xml标记中的所有值,javascript,jquery,xml,xmlhttprequest,Javascript,Jquery,Xml,Xmlhttprequest,我目前正在阅读一个xml文件,到目前为止,我已经成功地阅读了xml文件,但接下来的问题是,我不想一个接一个地阅读xml文件标记,而是要读取items标记中的标记并提取每个标记的值 到目前为止,这就是我得到的 var-xmlDoc; var xhr=new XMLHttpRequest(); open('GET','prueba.xml'); xhr.send(); xhr.onreadystatechange=函数(){ xmlDoc=xhr.responseXML; var items=xm

我目前正在阅读一个xml文件,到目前为止,我已经成功地阅读了xml文件,但接下来的问题是,我不想一个接一个地阅读xml文件标记,而是要读取items标记中的标记并提取每个标记的值

到目前为止,这就是我得到的

var-xmlDoc;
var xhr=new XMLHttpRequest();
open('GET','prueba.xml');
xhr.send();
xhr.onreadystatechange=函数(){
xmlDoc=xhr.responseXML;
var items=xmlDoc.getElementsByTagName(“items”)[0];

对于(i=0;i尝试以下操作:使用
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"}
        }
    }

你的问题是什么?你的问题有点不清楚,但有一件事让我觉得很突出,那就是你有一个变量
items
,但把它分配给一个单独的项,然后尝试循环遍历该项,就好像它是一组项一样。确保
xhr.readyState==4&&xhr.status==200
,在
onreadystatechange
中还会养成习惯,至少用
var
来界定
var
的范围,特别是因为代码是异步运行的。我的坏消息是,我忘了添加一个问题:“与其逐个读取xml文件标记,我想读取ITEMS标记内的标记,并提取每个标记的值”哇,谢谢你,伙计,现在我只需要把它们变成一个变量,给它们赋值,就可以了