PHP создание XML

linux2000

Новичок
PHP создание XML

Необходимо создать в PHP XML документ. Сначала делал это с помощью кода:

$xml = '<?xml version="1.0" encoding="UTF-8"?><dealer id="'.$id.'">';
$xml .= '<name>'.$row['name'].'</name>';
$xml .= '<description>'.$row['description'].'</description>';
$xml .= '<phone>'.$row['phone'].'</phone>';
$xml .= '</dealer>';

Потом подумал, что в раз в PHP есть стандартные функции для этого, то надо использовать их. В результате сделал так:

$xmlDoc = new DOMDocument();

$root = $xmlDoc->appendChild($xmlDoc->createElement('dealer'));
$root->appendChild($xmlDoc->createAttribute('id'))->appendChild($xmlDoc->createTextNode($id));
$root->appendChild($xmlDoc->createElement('name', $row['name']));
$root->appendChild($xmlDoc->createElement('description', $row['description']));
$root->appendChild($xmlDoc->createElement('phone', $row['phone']));

Но меня терзают сомнения, какой способ создания XML правильный? В том плане что быстрее по времени создаёт документ, и более наглядно выглядит?
 

Adelf

Administrator
Команда форума
быстрее точно первый. Второй гибче.
Наглядность - сам решай.
 

akd

dive now, work later
Команда форума
[m]xml[/m] там слева много возможностей. первый способ годиться только для маленьких документов, как только начнешь работать таким способом с чем-то большим/комплексным, сразу от этого откажешься.
 

Fludimir

Новичок
А как создать XMLку из обычного ассоциативного массива (неограниченной вложенности) ?
Писать велосипед который будет рекурсивно обходить массив, на каждый элемент которого делая $xml->addChild() (если использовать SimpleXML) , или таки можно как-то удобнее?
 

Fludimir

Новичок
Современные программисты в недоумении, когда не ленишься что-то писать - обзывают изобретателем велосипедов, когда стараешься найти способ не изобретать велосипед - говорят что ленишься :)

Мне нужна удобная возможность получать данные из, и сохранять свои данные в xml-файл. Каждый раз где мне это нужно - писать рекурсию, абы только не лениться?
Или написать свой класс для преобразования массива в обьект для хмл и обратно, и пользоваться им своим? В том что это велосипед я уверен полностью, не я первый и не я последний перед кем подобная задача стоит.
Если выбирать между этими двумя - конечно лучше выбрать второй вариант, только наверняка потом либо найдется хороший удобный класс умеющий и то что мне нужно и многое другое, либо задача просто решается каким нибудь простейшим способом
 
Сверху