PHP SimpleXML重复向每个父级添加子级

时间:2013-04-12 17:25:31

标签: php xml xml-parsing simplexml

我有这种XML:

<?xml version="1.0" encoding="utf-8"?>
 <data>
    <stats>
    </stats>
    <params>
    </params>
    <results> 
        <record id='SJDGH'>  
            <item>abc</item>
            <item>def</item>
            <item>ghi</item>
        </record>
        <record id='OIIO'>   
            <item>abc</item>
            <item>def</item>
            <item>ghi</item>
        </record>   
    </results>
 </data>

我在循环中为<item>中的每个<record>生成一个新的<results>

 // $data is SimpleXml objec from XML above
 foreach ($data->results->record as $record)
 {
   $newitem = 'New item!'.time().$record->attributes()->id;
 }

在这个循环中,我需要更改SimpleXML对象($data)以包含每个<record>中的新项目。

有可能吗?

2 个答案:

答案 0 :(得分:1)

我需要一点猜测,但这可能是你正在寻找的东西:

$records = $data->results->record;

foreach($records as $record)
{
    $value = sprintf('New Item! %s / id:%s', time(), $record['id']);
    $record->item[] = $value;
}

$data->asXML('php://output');

See it in action.

答案 1 :(得分:-1)

我想你可能想要使用addChild。

请在此处查看:http://php.net/manual/en/simplexmlelement.addchild.php