0

特定のノードの下に要素を挿入したいネストされたxmlファイルがあります。xml構造は次のようなものです。

<root>
    <item id="1">
        <content><name>ITEM 1</name></content>
        <item id="3">
            <content><name>ITEM 3</name></content>
            <item id="4">
                <content><name>ITEM 4</name></content>
            </item>
        </item>
    </item>
    <item id="2">
        <content><name>ITEM TWO</name></content>
    </item>
</root>

あるアイテムをアイテムID4の子として挿入したいとします。phpを使用して、アイテム4のノードを見つけ、その中に別のアイテムノードを追加する構文はどうなりますか?

4

1 に答える 1

3

最初に使用し、次にsimplexmlを使用してIDを検索し、次に子をxpath追加します。

$xml = '<root>
    <item id="1">
        <content><name>ITEM 1</name></content>
        <item id="3">
            <content><name>ITEM 3</name></content>
            <item id="4">
                <content><name>ITEM 4</name></content>
            </item>
        </item>
    </item>
    <item id="2">
        <content><name>ITEM TWO</name></content>
    </item>
</root>';

$xml = simplexml_load_string($xml); // load the XML

$id = $xml->xpath("//*[@id='4']"); // search for id=4

$item = $id[0]->addChild('item'); // add another item
$item->addAttribute('id', '5'); // add id=5
$content = $item->addChild('content', ''); // add content
$content->addChild('name', 'ITEM 5'); // add name

echo $xml->asXML(); // output
于 2012-06-12T12:16:52.607 に答える