带有命名空间的PHP DOM - 在HTML模板中解析自定义标记

时间:2014-04-06 14:47:34

标签: php xml xml-parsing

我的目标是在PHP中为HTML文档创建自定义模板系统。我使用DOMDocument,但是我无法识别我想要介绍的特殊标签的自定义命名空间。

我的测试脚本的开头如下所示:

$document = new DOMDocument();
$document->loadHTML('
        <div>
            <example:content />
        </div>', LIBXML_HTML_NOIMPLIED);
$elements = $document->getElementsByTagNameNS('example', 'content');

运行时,我收到以下警告。如果我可以让命名空间工作,我不介意压制它。

Warning: DOMDocument::loadHTML(): Tag example:content invalid in Entity, line: 3 in /Users/ryanwilliams/Sites/Test XML/test.php on line 8

当我var_dump $elements时,我得到以下输出(找不到结果)。

object(DOMNodeList)#2 (1) {
  ["length"]=>
  int(0)
}

当我echo解析模板时,我得到以下结果。请注意,它删除了命名空间。

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<div>
            <content></content>
        </div>

任何人都知道我需要做些什么来让它识别该元素的命名空间?

0 个答案:

没有答案