我正在使用javascript来读取XML并使用以下代码在HTML中打印特定节点。
我希望根据网址的语言过滤节点。
例如,我想显示像这样的输出
http://www.w3schools.com/xml/xml_applications.asp?**lang=en**
http://www.w3schools.com/xml/apps.asp?**lang=en**
这是我正在尝试阅读的XML。目前,下面的JS打印HTML文件中的所有节点,我想过滤并显示只有lang = en的URL。
<?xml version="1.0" ?>
<bookstore xmls="http://www.google.com/sitemap.0.9">
<book category="">
<loc>http://www.w3schools.com/xml/xml_applications.asp?**lang=en**</loc>
</book>
<book category="">
<loc>http://www.w3schools.com/xml/xml_applications.asp?lang=fr</loc>
</book>
<book category="">
<loc>http://www.w3schools.com/xml/xml_applications.asp?lang=de</loc>
</book>
<book category="">
<loc>http://www.w3schools.com/xml/apps.asp?**lang=en**</loc>
</book>
</bookstore>
用HTML打印所有节点和输出的JS
<script>
var xhttp;
xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
myFunction(this);
}
};
xhttp.open("GET", "writers.xml", true);
xhttp.send();
function myFunction(xml) {
var x, i, txt, xmlDoc;
xmlDoc = xml.responseXML;
txt = "";
x = xmlDoc.getElementsByTagName("loc");
for (i = 0; i < x.length; i++) {
txt += x[i].childNodes[0].nodeValue + "<br>";
}
document.getElementById("demo").innerHTML = txt;
}
</script>
是否可以提供任何指针来过滤匹配条件的网址?
使用正确的方法
for (i = 0; i < x.length; i++) {
if('txt'.indexOf('lang=en')) {
txt += x[i].childNodes[0].nodeValue + "<br>";
}
}