简单的问题,如何使用DOMDocument做到这一点??
<backend>
<type value="File" />
<cache_dir>
<zf:const zf:name="APPLICATION_PATH"/>.cache</cache_dir>
</backend>
而不会产生以下结果:
<backend>
<type value="File"/>
<cache_dir><zf:const zf:name="APPLICATION_PATH"/>.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';
发布于 2012-07-05 21:32:18
假设您的名称空间zf
是用于Zend framework的(并且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>
https://stackoverflow.com/questions/11345130
复制相似问题