在XPath中选择已过滤的节点集的属性

时间:2014-03-13 14:24:30

标签: xpath

我正在尝试学习XPath语法。我在这里使用w3schools的例子:

http://www.w3schools.com/xsl/tryit.asp?filename=try_xpath_select_pricenodes_high

..基于以下XML:

<?xml version="1.0" encoding="UTF-8""?>

<bookstore>

<book category="COOKING">
  <title la="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>

</bookstore> 

该示例选择价格大于35的图书的标题。我想使用此示例并选择类别名称而不是标题。所以,我试过这个:

/bookstore/book[price>35]/@category

而且,正如您在该网站上自己测试一样,它不会产生任何输出。我错了什么?

感谢您的时间。

1 个答案:

答案 0 :(得分:1)

查询没问题。但由于您处理属性节点而不是元素,因此必须调整打印结果的代码。改变行

document.write(nodes[i].childNodes[0].nodeValue);
document.write(result.childNodes[0].nodeValue);

document.write(nodes[i].nodeValue);
document.write(result.nodeValue);

你会得到预期的结果。