我有以下字符串。我不知道我是否称其为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'));
}
最佳答案
从字符串创建元素,然后访问子元素及其属性:
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/