Salve, come da titolo devo ordinare (con punteggio decrescente) i nodi di una classifica di squadre salvata in un foglio xml del tipo:
codice:
<root>
    <squadra>
        <nome>Sq1</squadra>
        <punti>10</punti>
    </squadra>
    <squadra>
        <nome>Sq2</squadra>
        <punti>16</punti>
    </squadra>
    ...ecc
</root>
Apro il documento e richiamo la funzione ordina(documento) creata da me con:
Codice PHP:
$doc = new DOMDocument('1.0''utf-8');
$doc->load("classif.xml");
$sq_ord ordina($doc); 
Quindi quello che mi aspetto e' che $sq_ord sia una nodeList di squadre ordinate secondo il criterio detto prima. La funzione ordina è la seguente:
Codice PHP:
function ordina($doc)
{
    
$sq $doc->getElementsByTagName("squadra");
    
$root $doc->documentElement;
    
$tmp NULL;
    
$top $sq->length;
    while (
$top 1)
    {
         for (
$i 0$i $top-1$i++)
         {
             if ((
$sq->item($i)->getElementsByTagName("punti")->item(0)->nodeValue) < ($sq->item($i+1)->getElementsByTagName("punti")->item(0)->nodeValue))
             { 
                 
$tmp $sq->item($i)->cloneNode(true);
                 
$root->replaceChild($sq->item($i), $sq->item($i+1));
                 
$root->replaceChild($sq->item($i+1), $tmp);
             }
         }
         
$top--;
    }
    return 
$sq;

Cosa sbaglio??
L'errore che ottengo è il seguente:

"Fatal error: Uncaught exception 'DOMException' with message 'Not Found Error' in D:\classifiche.php:99 Stack trace: #0 D:\classifiche.php(99): DOMNode->replaceChild(Object(DOMElement), Object(DOMElement)) #1 D:\classifiche.php(156): ordina(Object(DOMDocument)) #2 {main} thrown in D:\classifiche.php on line 99"

La riga 99 è: $root->replaceChild($sq->item($i+1), $tmp); nella funzione ordina.

Grazie mille.