如何通过xpath text()和该元素的第二个表亲查找元素?
我在java中使用Htmlunit。我需要通过text()找到一个元素,我需要这个元素的第二个表亲(我想) 我试过这个:如何通过xpath text()和该元素的第二个表亲查找元素?,text,xpath,parent,htmlunit,nextsibling,Text,Xpath,Parent,Htmlunit,Nextsibling,我在java中使用Htmlunit。我需要通过text()找到一个元素,我需要这个元素的第二个表亲(我想) 我试过这个: HtmlElement element = page.getFirstByXPath("//*[text() = \"SOMETHING\"]/parent/following-sibling/child"); System.out.println(element.asText()); // it's null 更新: html源页面: <tr> <
HtmlElement element = page.getFirstByXPath("//*[text() = \"SOMETHING\"]/parent/following-sibling/child");
System.out.println(element.asText()); // it's null
更新:
html源页面:
<tr>
<script>
_l('its not important')
</script>
<td valign="top">
<font class="its not important">
</td>
<td valign="top">
<font class="its not important">
SOMETHING
<script>
_l('its not important')
</script>
</font>
<script>
_l('its not important')
</script>
</td>
</tr>
<tr>
<td></td>
<td valign="top">
THE INFORMATION I NEED
</td>
</tr>
_l(‘这不重要’)
某物
_l(‘这不重要’)
_l(‘这不重要’)
我需要的信息
试试看
以下XPath应该可以工作:
//tr[td/*[contains(text(), "SOMETHING")]]/following-sibling::tr/td[@valign ="top"]
它将选择一个
元素,该元素确实有一个包含所需文本的孙元素。然后它将选择以下所有同级元素并选择下一个元素。请注意,我在valign属性值上选择了正确的
元素basec,您可能不想这样做,而是使用位置,即td[2]
它对我不起作用。我用html更新了问题,请检查这个。谢谢下次,总是有一个输入XML。我只是根据你帖子的标题猜测而已。顺便说一句,我喜欢你用的“表哥”这个词!实际上,在XPath中,您有父母、孩子和兄弟姐妹,但不是真正的表亲。但我真的很喜欢这个短语,它很有意义:)我试着简单地问这个问题。我很高兴你喜欢它。:)
//tr[td/*[contains(text(), "SOMETHING")]]/following-sibling::tr/td[@valign ="top"]