我的目标是在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>
任何人都知道我需要做些什么来让它识别该元素的命名空间?