、ドキュメントにそれらを置くためにDOMNode::appendChild()
のようなノードおよびメソッドを作成するDOMDocument::create*()
、ノードを見つけるために、XPathを使用しています。
$xml =<<< END
<Root>
<child id="1">
<text>smth</text>
</child>
</Root>
END;
$document = new DOMDocument("1.0");
$document->preserveWhiteSpace = false;
$document->formatOutput = true;
$document->loadXml($xml);
$xpath = new DOMXpath($document);
foreach ($xpath->evaluate('//*[@id="1"][1]') as $parentNode) {
$parentNode
->appendChild($document->createElement('text'))
->appendChild($document->createTextNode('node value'));
}
echo $document->saveXML();
出力:
<?xml version="1.0"?>
<Root>
<child id="1">
<text>smth</text>
<text>node value</text>
</child>
</Root>
は、巨大なXMLファイルの場合は、あなたがたXMLReader /するXMLWriterを使うことができますが、文書を変更することはできません。オリジナルのステップをステップごとに読んで、変更されたコピーを書き込む必要があります。
出典
2016-10-20 09:42:52
ThW
コードを書き込もうとしましたか?何か基本的なものさえ... – Dekel
こんにちは、はい、私はいつも要素を見つけることで終わりますが、子をそれに追加する方法はわかりません。私はDOMDocumentとsimplexml_load_fileを試していました –
simplexmlelementは 'addChild()'メソッドを持っています – JOUM