PHP конвертировать массив с SimpleXMLElement Object в XML

1

У меня есть массив с некоторыми объектами SimpleXMLElement внутри, и теперь мне нужно получить хорошо сформированный XML для взаимодействия Ajax, как я могу это сделать?

Это массив:

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>
  • 0
    И что вы пробовали
  • 0
    где ваши коды, которые создали массив?
Показать ещё 3 комментария
Теги:
arrays
simplexml

1 ответ

2
Лучший ответ

Я бы использовал метод 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 ;
  • 0
    Спасибо! Это именно то, что мне нужно!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню