1
我需要使用XML中的名称空间来处理代码,并对其进行处理。例如:在XML上使用名称空间
<system:include file="./test.php" cache="true" />
这将是内容的最终输出,但需要处理特殊标签(如system:include
)前发送到客户端。
因此,我将获得最终输出的所有元素,以搜索大约命名空间标记或特定标记。问题是,如果我使用DOMDocument
并像XML一样读取,则在命名空间声明(Namespace prefix system on include is not defined in Entity
)中遇到一些问题。
我的测试代码:
<?php
$document = new DOMDocument();
$document->loadXML('
<system:include file="./test.php" cache="true" />
');
foreach($document->childNodes as $node) {
var_dump($node->nodeName);
}
?>
我需要做,因为我需要处理一些特殊的标签并将其转换为真正的HTML。例如:将<b>
转换为<strong>
(只是一个例子!)或者做一些更好的事情,比如使用标签包含和缓存特定页面。
又如:
<h7>Hello World!</h7>
转换为:
<div class="h7">Hello World!</div>
注:的ob
内容将被发送给将通过这个特殊的标签搜索特定的方法。所以我不知道我是否可以在之前声明命名空间(可能会很难,也可能很慢)。
再见!
好...但如果我不知道命名空间是什么?因为我可以有'X'命名空间,我不知道每个命名空间的名称。只是一个帮助...如果它不可能我认为我知道我可以做什么... – 2012-03-12 23:58:38
我不知道如何使DOMDocument解析具有未知命名空间的XML文档,而不会警告它们。你可以用$ doc-> loadXML('...',LIBXML_NOERROR)来抑制错误。 – Martin 2012-03-13 00:07:00