我希望在2000年之前发布所有图书标题
XML
<bookstore xmlns:old="http://www.w3.org/TR/html4/" xmlns:new="http://www.w3.org/1999/XSL/Transform">
<old:book>
<old:title lang="en">Harry Potter I</old:title>
<old:author>J K. Rowling</old:author>
<old:year>1997</old:year>
<old:price>450</old:price>
</old:book>
<old:book>
<old:title lang="hn">Malgudi Days </old:title>
<old:author>R.K. Narayan </old:author>
<old:year>2006</old:year>
<old:price>160</old:price>
</old:book>
<new:book>
<new:title lang="en">Can Love Happen Twice?</new:title>
<new:author>Ravinder Singh</new:author>
<new:year>2011</new:year>
<new:price>150</new:price>
</new:book>
<new:book>
<new:title lang="en">The Lowland</new:title>
<new:author>Jhumpa Lahiri</new:author>
<new:year>2013</new:year>
<new:price>240</new:price>
</new:book>
我使用表达式获取所有标题
pathExpr = "/bookstore/*[local-name() = 'book']/*[local-name() = 'title']";
现在我想添加条件(年&gt; 2000)。我试过
pathExpr = "/bookstore/*[local-name() = 'book'][local-name() = 'year' < 2000]/*[local-name() = 'title']";
和这个
pathExpr = "/bookstore/*[local-name() = 'book']||[local-name() = 'year' < 2000]/*[local-name() = 'title']";
但它不起作用。 没有得到如何处理命名空间。 提前谢谢。
答案 0 :(得分:2)
这应该有效:
/bookstore/*[local-name() = 'book']
[./*[local-name() = 'year'] < 2000]/*[local-name() = 'title']
我在./*[...]
year
的{{1}}孩子的测试中添加了book
./*[local-name() = 'year']
选择子节点[./*[local-name() = 'year'] < 2000]
测试其内容值