2013-08-30 91 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註釋,注意位置條件 –

相關問題