【问题标题】:PHP SimpleXML add child to each parent repeatedlyPHP SimpleXML 重复向每个父级添加子级
【发布时间】:2013-04-12 17:25:31
【问题描述】:

我有这种 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>

我正在循环中为&lt;results&gt; 中的每个&lt;record&gt; 生成一个新的&lt;item&gt;

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

不知何故,在这个循环中,我需要更改 SimpleXML 对象 ($data) 以在每个 &lt;record&gt; 中包含新项目。

有可能吗?

【问题讨论】:

    标签: php xml xml-parsing simplexml


    【解决方案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.

    【讨论】:

      【解决方案2】:

      我想你可能想使用 addChild。

      在这里查看:http://php.net/manual/en/simplexmlelement.addchild.php

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-02-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-02-23
        • 1970-01-01
        • 2014-09-15
        • 1970-01-01
        相关资源
        最近更新 更多