我有这种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>
中的新项目。
有可能吗?
答案 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');
答案 1 :(得分:-1)
我想你可能想要使用addChild。
请在此处查看:http://php.net/manual/en/simplexmlelement.addchild.php