改变DomDocument元素/节点的值

时间:2013-11-12 14:15:37

标签: php xml domdocument dom-node

我正在构建一个XML:

<?xml ... ?>
<root>
    <elements>0</elements>
    <list>
        <element>test1</element>
        <element>test1</element>
        <element>test1</element>
    </list>
</root>

在追加所有<element>后,我想将<elements>0</elements>替换为<elements>3</elements>

我尝试了DOMNode::replaceChild,但没有任何影响。

$numberOfElements = $xml->createElement('numberOfElements', '0');
$root->appendChild($numberOfElements);

/* append elements and count them */

$root->replaceChild($numberOfElements,
                    $xml->createElement('numberOfElements', $countElements)
               );

如何正确使用replaceChild还是有不同的方式?

1 个答案:

答案 0 :(得分:3)

来自docs

  

public DOMNode replaceChild ( DOMNode $newnode , DOMNode $oldnode )

这意味着您必须先指定新节点,然后指定要替换的节点。你有错误的方法。

编辑:那说,为什么不这样做呢?

$numberOfElements->nodeValue = $countElements;