使用 PHP 为 XML 中的每个元素添加 child

Add child for each element in XML using PHP

我从来没有使用 PHP 与 XML 合作过,我似乎无法解决这个简单的(我认为)问题。

这是我的 XML:

<StockFile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <Stock>
        <Prod>M</Prod>
    </Stock>
    <Stock>
        <Prod>Y</Prod>
    </Stock>
    <Stock>
        <Prod>N</Prod>
    </Stock>
</StockFile>

我想达到的目标:

<StockFile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
        <Stock>
                <Prod>M</Prod>
                <price>Example</price>
        </Stock>
        <Stock>
                <Prod>Y</Prod>
                <price>Example</price>
        </Stock>
        <Stock>
                <Prod>N</Prod>
                <price>Example</price>
        </Stock>
</StockFile>

这是我的代码:

private static function appendPrice()
{
     $xml = simplexml_load_file("file.xml");

     foreach ($xml->Stock as $stock)
     {
         echo $stock->Prod;
         $stock->addChild('price', 'Example');
     }
}

尽管这是一个简单的问题,但我似乎无法解决它,我没有得到任何回应,回声很好,但没有添加 child。我做错了什么?

您没有在更改后保存文件:

private static function appendPrice()
{
     $xml = simplexml_load_file("file.xml");

     foreach ($xml->Stock as $stock)
     {
         echo $stock->Prod;
         $stock->addChild('price', 'Example');
     }

     $xml->saveXML('file.xml');

}

saveXML