Ciao io sto cercando di creare uno shiftamento per i nodi di un file XML.

Finmchè si tratta di un nodo semplice quindi senza figli tutto va benissimo.

Il problema è che ora dovrei farlo con nodi che contengono dei figli.

esempio di un nodo:

codice:
<?xml version="1.0" encoding="UTF-8"?>
<archivio>

  <storia>

    <titolo><![CDATA[prova2]]></titolo>

    <cartella><![CDATA[prova2]]></cartella>

    <front>Untitled-1.jpg</front>

    <galleria/>

  </storia>

  <storia>

    <titolo><![CDATA[prova]]></titolo>

    <cartella><![CDATA[prova]]></cartella>

    <front>41421_1505144136_1766_n.jpg</front>

    <galleria>

      <img>41421_1505144136_1766_n.jpg</img>
      <img>Untitled-1.jpg</img>

    </galleria>

  </storia>

</archivio>
Uso dom PHP5 e con il metodo cloneNode(true) mi vengono clonati solo i valori dei nodi figli e non anche i nodi stessi.

forse più chiaro se vi posto il codice che uso

Codice PHP:

$imgshift
=$root->getElementsByTagName("storia")->item($iditem);
                        
if(
$shifttype==1)    
$imgoldshift=$root->getElementsByTagName("storia")->item($iditem+1);

if(
$shifttype==0)
$imgoldshift=$root->getElementsByTagName("storia")->item($iditem-1);
            
            
            
$temp=$imgoldshift->cloneNode(true);     
            
$imgoldshift->nodeValue=$imgshift->nodeValue;
            
$imgshift->nodeValue=$temp->nodeValue
Qui praticamente il nuovo nodo sarà così:

<storia>prova prova 41421_1505144136_1766_n.jpg.......</storia>

invece che ricreare la struttura con i nodi giusti.

Spero di esser stato abbastanza chiaro, grazie. Ogni soluzione alternativa è ben accetta, ripeto il mio scopo è quello di spostare un nodo <storia> con i suoi figli una posizione prima o dopo all'interno del file.