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


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');
     }
}

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

更改后您没有保存文件:

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');
}

保存XML