addChild到每个xml元素

时间:2017-09-28 10:33:45

标签: php xml

我有一个XML文件,如下所示:

...
   <offers>
      <offer>
               ...
      <offer>
      <offer>
               ...
      <offer>
      <offer>
               ...
      <offer>
   <offers>
...

我想在每个“offer”上使用“addChild”函数,所以我正在使用这段代码:

$xmlstr = simplexml_load_file('/file_location/test.xml'); 
$item = $xmlstr->shop->offers->offer->addChild('sales_notes', 'some value');

$xmlstr2 = '/file_location/test.xml';
file_put_contents($xmlstr2, $xmlstr->asXML());

此代码仅将“sales_notes”子项添加到第一个“商品”中。如何在不使用大量代码的情况下将'sales_notes'子元素添加到所有'offer'元素中? 谢谢!

2 个答案:

答案 0 :(得分:2)

你可以做的是循环你的$xmlstr并添加孩子。

$xmlstr->shop->offers->offer中的每个项目都是SimpleXMLElement

类型

例如:

foreach($xmlstr->shop->offers->offer as $element) {
    $element->addChild('sales_notes', 'some value');
}

答案 1 :(得分:0)

使用getChildren循环遍历它。

{{1}}

没有神奇的衬里。