Меняем местами узлы одного уровня

HAGer

Новичок
Меняем местами узлы одного уровня

У меня есть документ

<?xml version="1.0" encoding="windows-1251" ?>

<!DOCTYPE doc SYSTEM "./dtd/dtd.dtd">

<doc>
<col id="col1">
<razdel name="Конференции iXBT" id="raz1">
...
</razdel>

<razdel name="Конференции iXBT" id="raz2">
...
</razdel>
</col>
</doc>

мне нужно раздел id=raz2 поднять вверх, а raz1 опустить вниз

Как я это понимал ДО того как началэто программить:
Клонируем первый узел, получаем структуру
raz1
raz1
raz2

оригинальному узлу raz1 приравниваем raz2, потом оригинальный удаляем raz2 и у нас остается структура
raz2
raz1

Начал писать на РНР
споткнулся уже на самом первом этапе. Пишу:


$raz1 = $raz21->previous_sibling();
$raz1clone = $raz1->clone_node();


не клонируется нифига :( append_sibling() работает, добавляя в конец "соседей" копию raz1. Но мне нужно, чтобы оно добавлялось сразу после оригинала. Кроме того, встала проблема, как отличить оригинальный узел от клона?

Мож я вообще не с того конца иду?
 
Сверху