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 に答える