将DOMDocument与XPath和amp;一起使用时出错DOMDocument获取td(样式)标签?

时间:2012-07-26 08:43:24

标签: php

我有一个示例代码:

$content = '
<table width="100%" border="0"> 
   <tr>
      <td style="white-space:nowrap;" class="cap_row_odd">browser_id</td>
      <td width="100%" class="cap_row_odd">browser_winmo_iemobile9</td>
   </tr>
   <tr>
      <td style="white-space:nowrap;" class="cap_row_even  cap_isempty"><span>nokia_feature_pack</span></td>                
      <td width="100%" class="cap_row_even cap_isempty"></td>             
   </tr>
</table>
';

我使用DOMDocument:

$dom = new DOMDocument();
@$dom->loadHTML($content);
$xpath = new DOMXPath($dom);

$attributes = array();

$query1 = $xpath->query("//td[@style='white-space:nowrap']");
foreach($query1 as $a) { 
    $attributes[] = $a->nodeValue;
}

print_r($attributes);

=&GT;但结果是空的,如何得到它?

1 个答案:

答案 0 :(得分:0)

您错过了xpath查询中的;

$query1 = $xpath->query("//td[@style='white-space:nowrap;']"); // works

考虑使用contains()函数让您的查询更加健壮:

$query1 = $xpath->query("//td[contains(@style, 'white-space:nowrap')]"); // works too