xPath loadHTML вызывается для элемента Table за «неожиданный конечный тег» - PullRequest
0 голосов
/ 03 ноября 2010

Я получаю ошибку, когда мой контент содержит разметку таблицы ниже.Вот сообщение об ошибке:

Предупреждение: DOMDocument :: loadHTML () [domdocument.loadhtml]: неожиданный конечный тег: столбец в Entity, строка: 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 голосов
/ 03 ноября 2010

Я просто догадываюсь, но так как ваши элементы col не имеют внутреннего значения, попробуйте вместо этого использовать конечный тег. Итак, instead of <col width="188"></col> use <col width="188" />

...