0

简单的问题,如何用 DOMDocument 做到这一点?

<backend>
    <type value="File" />
    <cache_dir>
        <zf:const zf:name="APPLICATION_PATH"/>.cache</cache_dir>
</backend>

没有以下结果:

<backend>
    <type value="File"/>
    <cache_dir>&lt;zf:const zf:name="APPLICATION_PATH"/&gt;.cache</cache_dir>
</backend>

这是我所做的:

$backendNode = $paramsNode->appendChild($cnfXml->createElement('backend'));
$backendNode->appendChild($cnfXml->createElement('type'))->setAttribute('value', 'File');
$pathnode = $backendNode->appendChild($cnfXml->createElement('cache_dir'));
$pathnode->appendChild($cnfXml->createElement('zf:const'))->setAttribute('zf:name', 'APPLICATION_PATH');
$pathnode->nodeValue .= '.cache';
4

1 回答 1

0

这对我有用,假设您的命名空间zf用于 Zend 框架(并且 URI 是正确的)。在为特定命名空间操作节点时,您必须使用正确的命名空间函数。

$backendNode = $paramsNode->appendChild($cnfXml->createElement('backend'));
$backendNode->appendChild($cnfXml->createElement('type'))->setAttribute('value', 'File');
$pathnode = $backendNode->appendChild($cnfXml->createElement('cache_dir'));
$pathnode->appendChild($cnfXml->createElementNS('http://framework.zend.com/xml/zend-config-xml/1.0/', 'zf:const'))->setAttributeNS('http://framework.zend.com/xml/zend-config-xml/1.0/', 'zf:name', 'APPLICATION_PATH');
$pathnode->appendChild( $cnfXml->createTextNode( '.cache'));

产生了

<backend>
    <type value="File"/>
    <cache_dir><zf:const zf:name="APPLICATION_PATH"/>.cache</cache_dir>
</backend>
于 2012-07-05T13:32:17.613 回答