xml через кавычки
Скажите есть обычный ассоциативный массив в php коде.
Использую класс Array2XML.php для перевода массива в xml -на выходе получается xml строка.
Этот класс кодирует атрибут ассоциативного массива через теги. Например <item>5</item>.
Есть ли у кого-либо класс, который превращает массив в xml, но в виде item="5", то есть параметры идут в одной строке через кавычки?
Код:
<?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>
<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>
А так всё просто, зачем ещё классы какие...
Код:
$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);
}
}
"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>
<root noAssoc_0="65" item1="item1Value" item67="item67Value" noAssoc_1="17836jdhfla" noitem="598"></root>