2013-08-30 58 views
0

我知道,这是一个条件:如何将多个条件添加到路径表达式中?

/bookstore/book[@price>20] 

而且你C和使用第二组[]指定位置:

/bookstore/book[@price>20][1] 

但你如何指定节点上的多个条件属性?

+2

警惕虽然。表达式'/ bookstore/book [@price> 20] [1]'与表达式'/ bookstore/book [@price> 20 and postition()= 1]'不一样。前者发现价格> 20的书籍,并返回找到的第一个书籍。如果价格大于20美元,那么后者只会返还一本书,并且是书店下的第一本书。 –

+0

好吧,我不得不验证自己,但@TimC是从我看到的东西是正确的,如' Book 1 Book 2 '。 '/ bookstore/book [@price> 20 and position()= 1]'返回空节点集,'/ bookstore/book [@price> 20] [1]'returns' Book 2'(在http://www.freeformatter.com/xpath-tester.html上测试并使用'lxml.etree.xpath()') –

回答

1

以同样的方式,像

/bookstore/book[@price>20][1][@title!=''] 

您还可以使用andor运营商像

/bookstore/book[@price>20 and position() = 1 and @title!=''] 
+0

谢谢,我不确定它是否会工作。 –

+1

请参阅上述问题中的@TimC注释,注意位置条件 –

相关问题