http://www.w3schools.com/xml/tryit.asp?filename=try_xpath_select_cdnodes 嗨,这是原始示例的链接。我也复制粘贴代码在这里。
<!DOCTYPE html>
<html>
<body>
<p id="demo"></p>
<script>
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
showResult(xhttp.responseXML);
}
};
xhttp.open("GET", "books.xml", true);
xhttp.send();
function showResult(xml) {
var txt = "";
path = "/bookstore/book/title"
if (xml.evaluate) { // what is this line of code for?
var nodes = xml.evaluate(path, xml, null, XPathResult.ANY_TYPE, null);
var result = nodes.iterateNext();
while (result) {
txt += result.childNodes[0].nodeValue + "<br>";
result = nodes.iterateNext();
}
// Code For Internet Explorer
} else if (window.ActiveXObject || xhttp.responseType == "msxml-document") {
xml.setProperty("SelectionLanguage", "XPath");
nodes = xml.selectNodes(path);
for (i = 0; i < nodes.length; i++) {
txt += nodes[i].childNodes[0].nodeValue + "<br>";
}
}
document.getElementById("demo").innerHTML = txt;
}
</script>
</body>
</html>
我不明白if(xml.evaluate)
声明的目的。
看起来它正在测试XPath的浏览器支持,但看起来它正在测试xml.evaluate
是返回true还是false。
由于
答案 0 :(得分:1)
“ if(xml.evaluate)”行用于检查浏览器类型。
如果浏览器类型是Chrome,Firefox,Opera等...,则将执行“ if(xml.evaluate)”函数中的代码。
仅当浏览器为Internet Explorer时,才会执行“ if(wind.ActiveXObject || xhttp.responseType ==“ msxml-document”)“中的代码。
答案 1 :(得分:0)
它有两个目的:
正在寻找这些文档,我已经达到https://developer.mozilla.org/en-US/docs/Introduction_to_using_XPath_in_JavaScript,看起来很有希望进一步理解它。