0
我有一個XML消息基於W3Schools的教訓:如何計算使用XPath在XML中的元素?
<?xml version="1.0" encoding="UTF-8""?>
<bookstore>
<book category="COOKING">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
<book category="CHILDREN">
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<book category="WEB">
<title lang="en">XQuery Kick Start</title>
<author>James McGovern</author>
<author>Per Bothner</author>
<author>Kurt Cagle</author>
<author>James Linn</author>
<author>Vaidyanathan Nagarajan</author>
<year>2003</year>
<price>49.99</price>
</book>
<book category="WEB">
<title lang="en">Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
</bookstore>
而且我有這樣的XPath腳本:
<!DOCTYPE html>
<html>
<body>
<script>
function loadXMLDoc(dname)
{
xhttp=new XMLHttpRequest();
xhttp.open("GET",dname,false);
xhttp.send("");
return xhttp;
}
var x=loadXMLDoc("books.xml");
var xml=x.responseXML;
path="/bookstore/book/price";
{
var nodes=xml.evaluate(path, xml, null, XPathResult.ANY_TYPE, null);
var result=nodes.iterateNext();
while (result)
{
document.write(result.childNodes[0].nodeValue);
document.write("<br>");
result=nodes.iterateNext();
}
}
</script>
</body>
</html>
截至目前,該代碼正確顯示的價格列表,這正是我希望有。但是接下來我想在最後顯示找到的實例的數量;在出情況下,應該只返回4. 我嘗試添加:
document.write("<br>");
document.write(count(//price));
,但它不工作,我不知道我走到哪裏錯了。感謝您的幫助。
兩件事情,請嘗試使用nodes.length。而且儘量不要使用W3Schools的參考,這是不可靠的 – PlaceUserNameHere
我的壞的第一個點,使用次數(//書/價格),但第二點是有效的。不要使用W3Schools的 – PlaceUserNameHere
對不起,我嘗試這樣做,這是行不通的,輸出的是空白的,所以必須有一個錯誤。如果我把這個變成一個變種,並宣佈它,然後我得到一個輸出,但它說未定義 – Ariestar