如果我想用xpath检查一个表行


If I want to inspect a table row with xpath

作为cURL操作的一部分,我需要进行一些解析。我想要的数据位于../table/tr/td,所述td是包含许多字符串的多个单元格,其中一个字符串是<b>34 PT</b>,但是这个数字是随机的,我不知道如何简单地执行"通配符"或类似操作。

我发现的建议:

/tr[contains(@td, 'PT')]" );  

不会返回任何结果,也不会:

/tr/td[contains( @b, 'PT' ) ]

我已经删除了最后的任何类型的搜索,它会按预期返回所有单元格,所以我知道数据就在那里。包含PT的表单元格有一个我需要知道的<a href>

以下是整个html:的示例

<table>
<tr>
<td>
<tr>
<td width="120" valign="top" align="center">
<a href="submit.phtml?PT_id=86343434&xcn=b22c57866bfc2bac89b09527b05b7760&location_id=0">
<img height="80" width="80" border="1" alt="" src=".gif">
</a>
<b>3423 PT</b>
<td>
<td>
<tr>
<td> ...and so on

xpath查询是这样使用的:

@$dom = new DOMDocument();
    @$dom->loadHTML( $rawPage );
    @$xpath = new DOMXPath( $dom );
    @$queryResult = $xpath->query( " //html/body/div[3]/div[3]/table/tr/td[2]/table[2]/tr/td/div/div/table/tr[2]/td/table/tr/td[contains( b, 'PT' ) ]" );

删除@符号,以便它检查元素值,而不是其属性

/tr/td[contains( b, 'PT' ) ]