2010-11-03 16 views
0

當我的內容包含下面的表格標記時,出現錯誤。以下是錯誤消息:xPath loadHTML在表格元素上被絆倒「意外結束標記」

警告:DOM文檔:: loadHTML()[domdocument.loadhtml]:預期的結束標記:山口在實體,行:2

其被引用在我的代碼這一行:

$dom->loadHTML(strtolower($post->post_content)); 

我的內容包含此表標記...

<table style="height: 658px;" 
     border="0" 
     cellspacing="0" 
     cellpadding="0" 
     width="472"> 
    <colgroup> 
     <col width="188"></col> 
     <col width="590"></col> 
    </colgroup> 
    <tbody> 
     <tr height="20"> 
      <td width="188" height="20"></td> 
      <td width="590"></td> 
     </tr> 
    </tbody> 
</table> 

而且我用這個功能來分析它... ...

function doTheParse($heading) 
{ 
global $post; 
$content = $post->post_content; 
if($content=="") return false; 
$keyword = trim(strtolower(rseo_getKeyword($post))); 
$dom = new DOMDocument; 
$dom->loadHTML(strtolower($post->post_content)); 
$xPath = new DOMXPath($dom); 
switch ($heading) 
    { 
    case "img-alt": return $xPath->evaluate('boolean(//img[contains(@alt, "'.$keyword.'")])'); 
    default: return $xPath->evaluate('boolean(/html/body//'.$heading.'[contains(.,"'.$keyword.'")])'); 
    } 
} 

回答

0

我只是猜測,但由於您的col元素沒有內在價值,請嘗試使用無結束標記。所以,instead of <col width="188"></col> use <col width="188" />

+0

A @ Nikky9696:謝謝你的提示。假設有效,我該如何修改函數來抑制錯誤或克服它?數據總是會動態的,所以我不知道html標籤是空的還是非空的。 – 2010-11-03 20:51:11

+0

目前,我使用@dom壓制錯誤 – 2010-11-03 20:51:40

+0

您是否控制了這一代?我知道我們必須修改我們的一個工具來生成空元素,如和值爲的元素值爲 Nikki9696 2010-11-04 15:35:46