DOMDocument howto

时间:2012-07-05 13:15:47

标签: php zend-framework special-characters domdocument

简单的问题,如何使用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';

1 个答案:

答案 0 :(得分: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'));

generated

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