Подскажите пожалуста, как выровнять программно теги в xml файле? При каждом добавлении элемента в xml не происходит перенос строки.
Вот прнимер xml, который не выравнивается:
<?xml version="1.0" encoding="UTF-8"?>
<list>
<loadxml>action.xml</loadxml>
<loadxml>adventure.xml</loadxml>
<loadxml>arcade.xml</loadxml>
<loadxml>misc.xml</loadxml>
<loadxml>puzzle.xml</loadxml>
<loadxml>shooter.xml</loadxml>
<loadxml>sport.xml</loadxml>
<loadxml>strategy.xml</loadxml>
<loadxml>xml9.xml</loadxml><loadxml>xml10.xml</loadxml><loadxml>xml11.xml</loadxml></list>
а хотелось бы:
<?xml version="1.0" encoding="UTF-8"?>
<list>
<loadxml>action.xml</loadxml>
<loadxml>adventure.xml</loadxml>
<loadxml>arcade.xml</loadxml>
<loadxml>misc.xml</loadxml>
<loadxml>puzzle.xml</loadxml>
<loadxml>shooter.xml</loadxml>
<loadxml>sport.xml</loadxml>
<loadxml>strategy.xml</loadxml>
<loadxml>xml9.xml</loadxml>
<loadxml>xml10.xml</loadxml>
<loadxml>xml11.xml</loadxml>
</list>
Вот код, которым я пользуюсь для добавления нового элемента(этот код взят из моего класса для обработки xml):
function addNode($name){
$xml = $this->xml;
$file = $this->file;
foreach($xml as $node){
$nameNode = $node->getName();
break;
}
$xml->addChild($nameNode,$name);
$xml->asXML($file);
}
Спустя 7 часов, 28 минут, 4 секунды (18.09.2010 - 10:30) Lenarfate написал(а):
$xml->addChild("\n". $nameNode,$name);
может как то так
Спустя 44 минуты, 11 секунд (18.09.2010 - 11:14) GRean написал(а):
Цитата (Lenarfate @ 18.09.2010 - 07:30) |
$xml->addChild("\n". $nameNode,$name); может как то так |
такой способ не правильно переносит теги, получается что то вроде этого:
(другая xml, но суть не меняет)
<name id="1"><
n1></
n1><
n2></
n2><
n3></
n3><
n4></
n4><
n5></
n5></name>
в результате ошибка. Что до тега, что после тега, все равно ошибка вылазит
![sad.gif](http://phpforum.ru/html/emoticons/sad.gif)
Спустя 17 минут, 10 секунд (18.09.2010 - 11:31) Michael написал(а):
Может добавление после узлов createTextNode("\n") как то прикрутится?
Спустя 42 минуты, 24 секунды (18.09.2010 - 12:13) GRean написал(а):
Цитата (Michael @ 18.09.2010 - 08:31) |
Может добавление после узлов createTextNode("\n") как то прикрутится? |
Не получается сделаеть перенос строки, мож я не правильно это делаю.
вроде есть еще trimXML(), только вот понять не могу, это самописная функция или метод simpleXML ?
Спустя 8 дней, 11 часов, 45 минут, 48 секунд (26.09.2010 - 23:59) linker написал(а):
Какой либо вообще пользуетесь, а то что-то не понятно?
Спустя 6 дней, 1 час, 22 минуты, 15 секунд (3.10.2010 - 01:22) GRean написал(а):
Цитата (linker @ 26.09.2010 - 20:59) |
Какой либо вообще пользуетесь, а то что-то не понятно? |
Никакой, просто нагуглил подобную функцию, а вот как ее применять так и не понял.
Вопрос до сих пор актуален. Как перенести строку в xml с помощью php ?
Спустя 5 часов, 42 минуты, 51 секунда (3.10.2010 - 07:04) kirik написал(а):
Цитата (GRean @ 2.10.2010 - 17:22) |
Никакой, просто нагуглил подобную функцию, а вот как ее применять так и не понял. |
Индоспособ только для данного случая без всяких выкрутасов. Работаем с xml как с текстом:
$data = '<?xml version="1.0" encoding="UTF-8"?>
<list>
<loadxml>xml9.xml</loadxml><loadxml>xml10.xml</loadxml><loadxml>xml11.xml</loadxml></list>';
echo str_replace("\n\n", "\n", implode("</loadxml>\n", explode('</loadxml>', $data)));
![wink.gif](http://phpforum.ru/html/emoticons/wink.gif)