将DOMDocument与XPath&;DOMDocument获取td(style)标记


Error when using DOMDocument with XPath & DOMDocument to get td(style) tag?

我有一个示例代码:

$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);

=>但是结果为空,如何获取?

您在xpath查询中缺少一个;

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

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

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