Simplexml поменять местами ноды

AmdY

Пью пиво
Команда форума
Simplexml поменять местами ноды

Нужно реализовать up, down нод в xml через simplexml
$tmp = clone $xml->item[$i];
$xml->item[$i] = $xml->item[$i+1];
$xml->item[$i+1] = $tmp;
в итоге получаю 2 пустые ноды.
думаю создавать буферный объект и в него переновить ноды в нужном порядке, но это как-то не кошерно.

-~{}~ 27.05.09 19:19:

up

-~{}~ 28.05.09 16:38:

up
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
почему-то мне кажется, что у тебя неверная цель:
если у тебя ноды полностью одинаковые, различаясь лишь контентом, порядок не должен иметь значения
так же, как мы не полагаемся на порядок размещения записей в таблице БД

для указания порядка можно ввести аттрибут с порядковым номером
 

Krishna

Продался Java
порядок не должен иметь значения
так же, как мы не полагаемся на порядок размещения записей в таблице БД
В БД мы не полагаемся, потому что это оговорено реляционной моделью (порядок записей не определен).
В XML порядок вполне себе определен, так что нонсенс, имхо делать такие заявления :)

А по сути - насколько я в курсе SimpleXML изначально не претендует на полноценный инструмент. Вроде как его основная задача - упрощение чтения XML.
Полагаю, что его свойства - это на самом деле аналоги вызова __get(), поэтому и не выходит ничего.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
да, думаю, порядок может иметь значение
по крайней мере я вспомнил веб-сервис, который его использует
правда, это в нем очень неудобно

AmdY, можешь перевести SimpleXML в DOM, перенести ноды и вернуть в SimpleXML?
для конвертаций есть нативные ф-ции
 

AmdY

Пью пиво
Команда форума
Krishna
да, магии там много :(, довольно не приятно работать оказалось, разве что только для считывания юзать.
grigori
спасибо, порылся в мануале, оказывается DOM входит в ядро, а я его изначально отвергал боясь что на хостингах может не оказаться :(, сколько же костылей понаписывал из-за этой глупой ошибки.
 

SiMM

Новичок
> оказывается DOM входит в ядро, а я его изначально отвергал боясь что на хостингах может не оказаться
Тем не менее проблемы с ним бывают
http://phpclub.ru/talk/showthread.php?threadid=114584
Это к сведению, чтобы репу не чесать в случае чего.
 

AmdY

Пью пиво
Команда форума
Действительно. Мне такой хостинг встречался, потому и засело в голове, что DOM не дефолтный. Но раз в коре, то этого достаточно, а то моло ли что ещё "админы" посчитают лишним, это уже моразм.
 
Сверху