Как добавить произвольный кусок xml в конечный xml

#
Как добавить произвольный кусок xml в конечный xml
Я хочу допустим сделать такую секцию:

<like>
<item>
  <name>Товар 1</name>
  <url>...</name>
</item>
<item>
  <name>Товар 2</name>
  <url>...</name>
</item>
<item>
  <name>Товар 3</name>
  <url>...</name>
</item>
</like>


и добавить это в конечный xml

Есть возможность так сделать?
#
Re: Как добавить произвольный кусок xml в конечный xml
Сам спросил, сам ответил


$Shop_Controller_Show->addEntity(
         Core::factory('Core_Xml_Entity')
         ->name('assoc')
                        ->addEntity(
                                Core::factory('Core_Xml_Entity')->name('name')->value("name1")
                        )
);
#
Re: Как добавить произвольный кусок xml в конечный xml
А как сделать это в цикле? К примеру есть массив вида
Array
(
    [0] => Array
        (
            [name] => name1
            [img] => img1
        )

    [1] => Array
        (
            [name] => name2
            [img] => img2
        )
   ........
)

и нужно получить в конечном

<params_array>
   <param id="0">
      <name>name1</name>
      <img>img1</img>
   </param>
   ......
</params_array>

Модератор
#
Re: Как добавить произвольный кусок xml в конечный xml
В цикле вызывать ->addEntity(), код не проверялся, возможны опечатки:

$Shop_Controller_Show->addEntity(
         $oParams_array = Core::factory('Core_Xml_Entity')->name('params_array')
);

foreach ($aArray as $key => $value)
{
   $oParams_array->addEntity(
         Core::factory('Core_Xml_Entity')
         ->name('param')
         ->addAttribute('id', $key)
         ->addEntity(
               Core::factory('Core_Xml_Entity')->name('name')->value($value['name'])
          )
          ->addEntity(
               Core::factory('Core_Xml_Entity')->name('img')->value($value['img'])
          )
);
}
#
Re: Как добавить произвольный кусок xml в конечный xml
Спасибо
#
Re: Как добавить произвольный кусок xml в конечный xml
Так как не нашел, пришлось самому написать, дописываю сюда:


function array2xml($oLists, $aLists) {
   foreach ($aLists as $key => $value) {
      $oXml = Core::factory('Core_Xml_Entity')
            ->name('param')
            ->addAttribute('id', $key);
      if (is_array($value)) {
         array2xml($oXml, $value);
      } else {
         $oXml->addEntity(
               Core::factory('Core_Xml_Entity')->name('name')->value(array2xml($oLists, $aLists))
         );
      }
      $oLists->addEntity(
            $oXml
      );
   }
}

$oLists = Core::factory('Core_Xml_Entity')->name('order_lists');

array2xml($oLists, $aLists);


$oLists - в данном случае просто объект XML , можно вместо него использовать $Shop_Controller_Show или ему подобные объекты HostCMS.
$aLists - массив, может содержать подмассивы, они тоже в XML преобразуются.
Авторизация