javascript - 使用javascript更改xml的revsere顺序
问题描述
我想颠倒我的 xml 文档文件中的顺序列表可能是我做错了任何人都可以解释为什么这是我使用循环和在该循环中 foreach 来颠倒顺序但不起作用
<CATALOG>
<CD>
<TITLE>Greatest Hits</TITLE>
<ARTIST>Dolly Parton</ARTIST>
<COUNTRY>USA</COUNTRY>
<COMPANY>RCA</COMPANY>
<PRICE>9.90</PRICE>
<YEAR>1982</YEAR>
</CD>
<CD>
<TITLE>Still got the blues</TITLE>
<ARTIST>Gary Moore</ARTIST>
<COUNTRY>UK</COUNTRY>
<COMPANY>Virgin records</COMPANY>
<PRICE>10.20</PRICE>
<YEAR>1990</YEAR>
</CD>
<CD>
<TITLE>Eros</TITLE>
<ARTIST>Eros Ramazzotti</ARTIST>
<COUNTRY>EU</COUNTRY>
<COMPANY>BMG</COMPANY>
<PRICE>9.90</PRICE>
<YEAR>1997</YEAR>
</CD>
</CATALOG>
我的 javascript
function myFunction(xml) {
var i;
var xmlDoc = xml.responseXML;
var table="";
var x = xmlDoc.getElementsByTagName("CD");
for (i = 0; i < x.length; i++) {
var show =
x[i].getElementsByTagName("ARTIST")[0].childNodes[0].nodeValue;
show.reverse();
show.forEach(myfun);
function myFun(xt){
table = table + xt ;
}
}
document.getElementById("demo").innerHTML = table;
}
这应该显示来自 Eros Ramazzotti、Gary Moore、Dolly Parton 的第一个相反顺序,谢谢。
解决方案
您是否正在考虑反转 CD 节点。如果是,你可以这样做
var nodes = xmlDoc.getElementsByTagName("CD");
var newDoc = parser.parseFromString("<CATALOG></CATALOG>","text/xml");
var catalog = newDoc.childNodes[0];
for (var i = nodes.length - 1; i >= 0; --i) {
catalog.appendChild(nodes[i]);
}
console.log(newDoc);