如何在不使用contains的情况下查找XPath

时间:2016-08-25 02:35:45

标签: html xml xpath

我想在课堂上找到Xpath' body'。 但问题是这两个类都在另一个表中。

<td colspan="2" valign="middle"> 

<a style="display: block;text-decoration:none;color:#000;" href="/Pages/Requests.aspx?type=C"> 

<table class="special"> 

<tr style="height: 48px;"> 

<td class="single_td_width" align="center">● 

</td> 

<td align="left" class="body" style="color: #000; text-align: left;">End date</td> 

<td colspan="2" valign="middle"> 

<a style="display: block;text-decoration:none;color:#000;" href="/Pages/Requests.aspx?type=C"> 

<table class="special"> 

<tr style="height: 48px;"> 

<td class="single_td_width" align="center">● 

</td> 

<td align="left" class="classDate" style="color: #000; text-align: left;">Start date</td> 

3 个答案:

答案 0 :(得分:2)

我看到'td'有一个text()属性,所以如果另一个'td'具有相同的class属性主体有不同的text(),你很可能会这样:

"//td[@class = 'body' and text() = 'End date']"

如果你有多个具有相同属性的元素,你应该使用像'和'这样的条件或者使用轴来转到那个特定的元素。像兄弟姐妹一样,兄弟姐妹等。你可以看到这个网站,了解如何做Xpaths Axes http://www.w3schools.com/xsl/xpath_axes.asp

答案 1 :(得分:0)

为什么不使用JavaScript DOM getElementsByClassName呢?但是在XPath中它只是

//*[@class="Body"]

答案 2 :(得分:0)

这个XPath,

//td[@class='body']

将使用td选择文档中的所有@class='body'元素。

如果您有多个,您需要告诉我们它们的不同之处以及您希望选择的是哪一个。没有这个,我们只能说是

(//td[@class='body'])[1]

是第一个td,和

(//td[@class='body'])[2]

是第二个td