Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: 6310
Последний выпуск: 19.06.2015

xml через кавычки

7.5K
25 июня 2014 года
diprom
37 / / 15.10.2010
Здравствуйте.
Скажите есть обычный ассоциативный массив в php коде.
Использую класс Array2XML.php для перевода массива в xml -на выходе получается xml строка.
Этот класс кодирует атрибут ассоциативного массива через теги. Например <item>5</item>.
Есть ли у кого-либо класс, который превращает массив в xml, но в виде item="5", то есть параметры идут в одной строке через кавычки?
7.5K
25 июня 2014 года
diprom
37 / / 15.10.2010
Пример такого xml:

 
Код:
<?xml version='1.0' encoding='iso-8859-1'?>
 <tree id="0">
  <item text="My Computer" id="1" child="1" im0="my_cmp.gif" im1="my_cmp.gif" im2="my_cmp.gif"
       call="true" select="yes">
      <userdata name="system">true</userdata>
      <item text="Floppy (A:)" id="11" child="0" im0="flop.gif" im1="flop.gif" im2="flop.gif"/>
      <item text="Local Disk (C:)" id="12" child="0" im0="drv.gif" im1="drv.gif" im2="drv.gif"/>
  </item>
  <item text="Recycle Bin" id="4" child="0" im0="recyc.gif" im1="recyc.gif" im2="recyc.gif"/>
</tree>
8
25 июня 2014 года
mfender
3.5K / / 15.06.2005
Не понимаю. Сущность массива - коллекция узлов в XML. Зачем массив записывать в аттрибуты?
А так всё просто, зачем ещё классы какие...


Код:
$arr = array(
    "65",
    "item1" => "item1Value",
    "item67" => "item67Value",
    "17836jdhfla",
    "noitem" => 598
);

$doc = new DOMDocument;
$root = $doc->createElement('root', '');
$doc->appendChild($root);
doXML($root, $arr);
echo $doc->saveXML();
exit();

function doXML(DOMElement &$el, array $data) {
    foreach ($data as $key=>$val) {
        $attrName = is_int($key) ? "noAssoc_{$key}" : $key;
        $el->setAttribute($attrName, $val);
    }
}
На выхлопе получится что-то такое:

 
Код:
<?xml version="1.0"?>
<root noAssoc_0="65" item1="item1Value" item67="item67Value" noAssoc_1="17836jdhfla" noitem="598"></root>

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог