【问题标题】:PHP convert Array with SimpleXMLElement Object to XMLPHP 将带有 SimpleXMLElement 对象的数组转换为 XML
【发布时间】:2015-05-15 14:35:25
【问题描述】:

我有一个数组,里面有一些 SimpleXMLElement 对象,现在我需要为 Ajax 交互获取格式良好的 XML,我该怎么做?

这是数组:

Array ( 
   [0] => SimpleXMLElement Object (
          [count] => 2 
          [id] => 20 
          [user_id] => 2 
          [title] => Polo RL ) 
   [1] => SimpleXMLElement Object ( 
          [count] => 3 
          [id] => 19 
          [user_id] => 4 
          [title] => tshirt fitch ) 
   [2] => SimpleXMLElement Object ( 
          [count] => 2 
          [id] => 18 
          [user_id] => 2 
          [title] => Polo La Martina ) 
) 

我会得到这个 XML 结果:

<root>
    <record>
        <count>2</count>
        <id>20</id>
        <user_id>2</user_id>
        <title>Polo RL</title>
    </record>
    <record>
        <count>3</count>
        <id>19</id>
        <user_id>4</user_id>
        <title>tshirt fitch</title>
    </record>
    <record>
        <count>2</count>
        <id>18</id>
        <user_id>2</user_id>
        <title>Polo La Martina</title>
    </record>
</root>

【问题讨论】:

  • 你已经尝试过什么
  • 创建数组的代码在哪里?
  • 这里发现了很多方法“从数组转换为 xml”,但没有人在数组中包含 SimpleXMLElement 对象,抱歉我的简短回答,但我没有太多时间!
  • 它最初是一个像我写的那样的XML,但它没有按id降序排序,然后我使用iterator_to_array,array_multisort和usort以正确的方式排序,现在我需要回到 XML
  • 您想将它们合并到一个对象中吗?还是想获取格式化字符串?

标签: php arrays xml simplexml


【解决方案1】:

我会使用 SimpleXMLElement 的 asXML 方法来输出每个对象的 XML。所以这个:

$xml = <<<XML
<record>
    <count>2</count>
    <id>20</id>
    <user_id>2</user_id>
    <title>Polo RL</title>
<record>    
XML;

$xml = new SimpleXMLElement($xml);

echo $xml->asXML();

会输出这个:

<record>
    <count>2</count>
    <id>20</id>
    <user_id>2</user_id>
    <title>Polo RL</title>
<record>

所以你可以简单地循环遍历你的数组,将每个元素 xml 输出到一个变量,如下所示:

$fullXml = '<root>';
foreach($arrXml as $xmlElement){
    $fullXml .= str_replace('<?xml version="1.0"?>', '',$xmlElement->asXML());
}
$fullXml .= '</root>';
echo $fullXml ;

【讨论】:

  • 谢谢!这正是我需要的!
猜你喜欢
  • 2016-12-14
  • 2012-05-15
  • 2018-05-29
  • 2017-06-26
  • 2011-04-30
  • 1970-01-01
  • 1970-01-01
  • 2023-02-08
  • 1970-01-01
相关资源
最近更新 更多