如果我想用xpath检查表行

时间:2012-07-25 03:16:24

标签: php search 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' ) ]" );

1 个答案:

答案 0 :(得分:1)

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

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