2016-03-08 50 views
1

文本通过XPath,我试图让位于第二<td>(文:0.56)的文本值由具体使用following-sibling和关键词(. = 'Vitamin D')。的XPath以下同胞摆脱​​

<html> 
    <body> 
     <td><a href="http://website.com/12345.php">Vitamin D</a></td> 
     <td>0.56</td> 
     <td>µg</td> 
     <td>5</td> 
    </body> 
</html> 

到目前为止,我已设法通过其链接的内容,通过识别第一<td>文:

//a[starts-with(@href, 'http://website.com/') and . = 'Vitamin D']


我已经试过这和其他的替代品,但我很老说得对:

//a[starts-with(@href, 'http://website.com/') and . = 'Vitamin D']/following-sibling::td

//a[starts-with(@href, 'http://website.com/') and . = 'Vitamin D']following-sibling::text()

回答

2

使用以下同级上td,即//td[a[starts-with(@href, 'http://website.com/') and . = 'Vitamin D']]/following-sibling::td[1]

+0

谢谢!所以问题是前面需要'td'来启动,然后用'[1]'来“捕获”? – Winterflags

+1

'​​0.56'是带有链接的'td'的第一个'td'兄弟,它不是'a'链接元素的兄弟。因此,您需要选择包含链接的'td'('a'元素),然后选择第一个following-sibling :: td,因为没有位置谓词'[1]',您将选择以下所有三个同级'td '元素。 –