我正在尝试使用AJAX和JavaScript构建一个页面,该页面显示按节点值过滤的XML文件的内容。 XML与此类似:
<?xml version="1.0" encoding="UTF-8"?>
<catalog>
<cd>
<title>Empire Burlesque</title>
<artist>Bob Dylan</artist>
<country>USA</country>
</cd>
<cd>
<title>Hide your heart</title>
<artist>Bonnie Tyler</artist>
<country>UK</country>
</cd>
<cd>
<title>Greatest Hits</title>
<artist>Dolly Parton</artist>
<country>USA</country>
</cd>
<cd>
<title>Still got the blues</title>
<artist>Gary Moore</artist>
<country>UK</country>
</cd>
</catalog>
在XMLHttpRequest之后,CD数据在显示在表中之前转换为数组(nodeList):
function handleXML (xmlData) {
var data = xmlData;
var cd = data.getElementsByTagName("cd");
var arrayCD = Array.prototype.slice.call(cd);
var table = "<table>";
table += "<tbody>";
for ( var i = 0, len = arrayCD.length; i < len; i++ ) {
table += "<tr>";
table += "<td>"+ arrayCD[i].getElementsByTagName("title")[0].firstChild.nodeValue +"</td>";
table += "<td>"+ arrayCD[i].getElementsByTagName("artist")[0].firstChild.nodeValue +"</td>";
table += "<td>"+ arrayCD[i].getElementsByTagName("country")[0].firstChild.nodeValue +"</td>";
table += "</tr>";
}
table += "</tbody>";
table += "</table>";
return table;
}
我的问题是如何过滤表格数据,以便(例如)只显示在英国制作的CD。 我一直在努力解决这个问题,现在开始感到越来越困惑。我想解决方案可能是这样的:
arrayCD.filter(function(c) {
var filterC = c.getElementsByTagName("COUNTRY")[0].childNodes[0].nodeValue;
return (filterC = "UK");
});
(应插入 var arrayCD 和 var table 之间)。但我根本无法使其发挥作用。如果有人能提出答案,我会很高兴。