-1

だから私は次のxml構造を持っています:

<Application>
        <Properties>
            <Property>
                <Name>blabla</Name>
                <Value>123</Value>
            </Property>
        </Properties>
</Application>

PHPで別の「プロパティ」の子を追加したい。例は次のとおりです。

<Application>
        <Properties>
            <Property>
                <Name>blabla</Name>
                <Value>123</Value>
                                <Name>example test</Name>
                <Value>another value</Value>
            </Property>
        </Properties>
</Application>

これが私の現在のphpコードです:

<?php
    $xml = simplexml_load_file("Application.xml"); 

    $sxe = new SimpleXMLElement($xml->asXML()); 

    $properties = $sxe->addChild("Property");
    $properties->addChild("Name", "namehere"); 
    $properties->addChild("Value", "random value here"); 

    $sxe->asXML("Application.xml");
?>

ただし、xml の末尾に追加するだけです。その後</Application>、それは私たちが望んでいるものではありません。

子につけてほしい<Property>

誰かが私を助けることができますか?

4

2 に答える 2

0

子を特定の要素に追加したい場合は、次のように言わなければなりません:

$properties = $sxe->Properties->addChild("Property");
                    ^^^^^^^^^^

オンラインデモ

複数のProperties要素があり、最初の要素以外を指定したい場合は、ゼロから始まる配列インデックスを使用できます。たとえば0、最初の要素 (デフォルト) に1は、2 番目の要素には:

$properties = $sxe->Properties[1]->addChild("Property");

オンラインデモ

于 2013-02-10T21:55:38.673 に答える
0

<Application>タグ内をタグまでトラバースする必要があります<Properties>

を使用しxpath()ます。

$propNode = $sxe->xpath('/Application/Properties');
$property = $propNode[0]->addChild('Property');

これがphpfiddleです

于 2013-02-09T15:09:31.037 に答える