对于“意外结束标记”,xPath loadHTML在Table元素上被触发

时间:2010-11-03 20:19:49

标签: dom error-handling html-parsing

当我的内容包含下面的表格标记时,我收到错误消息。以下是错误消息:

警告:DOMDocument :: loadHTML()[domdocument.loadhtml]:意外的结束标记:col in Entity,line: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.'")])');
    }
}

1 个答案:

答案 0 :(得分:0)

我只是猜测,但由于您的col元素没有内在价值,请尝试使用无结束标记。所以,instead of <col width="188"></col> use <col width="188" />