我正在使用 JavaScript 读取此 XML
我如何确保我正在阅读 <item>
<record>
内的元素其存在于 xml 中的顺序相同(因此 [Robinson Crusoe] 将首先出现,然后是 [Daniel Defo])
这行得通吗?
record[index].find("item:eq(0)").text();
record[index].find("item:eq(1)").text();
xml:
<result>
<record>
<item>Robinson Crusoe</item>
<item>Daniel Defo</item>
</record>
<record>
<item>Gullivers Travels</item>
<item>Jonathan Swift</item>
</record>
<record>
<item>Tom Jones</item>
<item>Henry Fielding</item>
</record>
</result>
最佳答案
只需几行纯 JavaScript,即可将 XML 数据转换为数组。没有理由为此加载像 jQuery 这样的大型框架(除非它在其他地方使用)。正如您从示例中看到的,数组项的排序与 XML 中的排序相同。该解决方案最适合问题的简单 XML 结构。
点击显示代码并运行代码片段以查看其工作原理:
var i, xmlStr, items, list = [];
xmlStr = document.getElementById('data').value;
items = (new window.DOMParser())
.parseFromString( xmlStr, 'text/xml')
.getElementsByTagName('item');
for (i = 0; i < items.length; i++) {
list.push(items[i].childNodes[0].nodeValue);
};
document.getElementById('stdout').value = JSON.stringify(list, null, ' ');
textarea {
width: 25em;
height: 6em;
padding: 0.5em;
border: 1px solid black;
}
<div>JS ARRAY</div>
<textarea id="stdout"></textarea>
<div>XML</div>
<textarea id="data">
<result>
<record>
<item>Robinson Crusoe</item>
<item>Daniel Defo</item>
</record>
<record>
<item>Gullivers Travels</item>
<item>Jonathan Swift</item>
</record>
<record>
<item>Tom Jones</item>
<item>Henry Fielding</item>
</record>
</result>
</textarea>
items = ( new window.DOMParser() )
.parseFromString( xmlStr, 'text/xml' )
.getElementsByTagName( 'item' );
for (i = 0; i < items.length; i++)
list.push(items[i].childNodes[0].nodeValue );
关于javascript - 读取 xml 确保保留节点上的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35382332/