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.