2013-07-04 48 views
2

我有以下xml片段。在xpath上過濾後使用索引

<root> 
    <site type="main"> 
    <link>http://stackexchange.com</link> 
    </site> 
    <site type="qa"> 
    <link>http://stackoverflow.com</link> 
    </site> 
    <site type="qa"> 
    <link>http://superuser.com</link> 
    </site> 
    <site type=""> 
    <link>http://data.stackexchange.com</link> 
    </site> 
</root> 

我想選擇類型「qa」的第一個網站的鏈接。我認爲//site[@type="qa"][1]應該這樣做。但是id不起作用。

回答

3

試一試(//site[@type="qa"])[1]/link/text()

,或者:

​​

在測試了http://www.xpathtester.com/,成果轉化http://stackoverflow.com

+0

爲什麼'// site [@ type =「qa」和position()= 1]/link/text()'不起作用? –

+0

您要求兩個條件同時爲真。您應該首先搜索'qa'屬性,然後檢查位置:'// site [@ type =「qa」] [position()= 1]/link/text()'。另請參閱本[回答](http://stackoverflow.com/a/1006439/771848)。 – alecxe