javascript - 如何获取部分XML文件的特定节点的值列表?

标签 javascript jquery xml

我有以下字符串。我不知道我是否称其为XML格式。这就是为什么我使用“部分 XML”这个词。如果我使用了错误的术语,请纠正我。

<grid name=\"resultset\" object=\"1\" jump=\"name\" select=\"1\" icon=\"1\" preview=\"1\">
    <row name=\"result\" id=\"accountid\">
        <cell name=\"name\" width=\"300\" />
        <cell name=\"telephone1\" width=\"100\" />
        <cell name=\"primarycontactid\" width=\"150\" />
        <cell name=\"accountprimarycontactidcontactcontactid.emailaddress1\" width=\"150\" disableSorting=\"1\" />
        <cell name=\"statecode\" width=\"100\" />
    </row>
</grid>

我想从 cell 标签获取 name 属性的值即 name、telephone1、primarycontactid、accountprimarycontactidcontactcontactid.emailaddress1、statecode

有人可以建议我如何使用 javascript 或 jquery 获取上述值吗?

应用以下概念后出错:如果元素数量较多,则会发生这种情况

var str = "<grid name=\"resultset\" object=\"1\" jump=\"name\" select=\"1\" icon=\"1\" preview=\"1\"><row name=\"result\" id=\"accountid\"><cell name=\"name\" width=\"300\" /><cell name=\"telephone1\" width=\"100\" /><cell name=\"primarycontactid\" width=\"150\" /><cell name=\"accountprimarycontactidcontactcontactid.emailaddress1\" width=\"150\" disableSorting=\"1\" /><cell name=\"statecode\" width=\"100\" /></row></grid>";

var tmpDiv = document.createElement('div');
tmpDiv.innerHTML = str;

var cells = tmpDiv.getElementsByTagName('cell')
var values = [];

for(var i = 0; i<cells.length; i++) {
  values.push(cells[i].getAttribute('name'));
}

截图 enter image description here

最佳答案

从字符串创建元素,然后访问子元素及其属性:

var node = '<grid name="resultset" object="1" jump="name" select="1" icon="1" preview="1"><row name="result" id="accountid"><cell name="name" width="300" /><cell name="telephone1" width="100" /><cell name="primarycontactid" width="150" /><cell name="accountprimarycontactidcontactcontactid.emailaddress1" width="150" disableSorting="1" /><cell name="statecode" width="100" /></row></grid>';
document.body.innerHTML = node;
var grid = document.getElementsByTagName('grid');
alert(grid[0].getAttribute('name'));

关于javascript - 如何获取部分XML文件的特定节点的值列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39869865/

相关文章:

javascript - Ajax 调用不起作用?

javascript - 将双周期替换为单周期,如果 4 个或更多替换为三个

c++ - 为具有内存限制的大 XML 优化的 XML 库

Java XML 解码在使用 JAXB 的符号 (&) 上失败

xml - 使用 ANT 替换整个 XML 标签

javascript - Object.create() 无法访问函数内的变量

javascript - 在 IE 9 调试器中显示控制台语句的行号

javascript - 如何使用 ajax 将 javascript 值传递给 aspx c#

javascript - Bootstrap 中的嵌套选项卡

php - 在 jQuery 中绑定(bind)事件的正确方法是什么?