[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Выравнивание xml тегов
GRean
Всем привет!

Подскажите пожалуста, как выровнять программно теги в 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

Спустя 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
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.