Visualizzazione risultati 1 fino 5 di 5

Discussione: [PHP/XML] script aggiornamento intero file xml

  1. #1
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,767

    Predefinito [PHP/XML] script aggiornamento intero file xml

    Salve utenti di AV,

    Sto facendo uno script che aggiorni tutti i nodi presenti in un file xml, questo è il suo codice:
    Codice PHP:
    error_reporting(E_ALL);
    $dom = new DOMDocument();
    $dom->load("file.xml");
    $root = $dom->documentElement;
    $elements = $root->getElementsByTagName('user');
    $count = 0;
    foreach (
    $elements as $out);
    {
    // Estraggo l'id
    $old_id = $out->getAttribute('id');

    // Creo il nuovo id
    $explode_id = explode(";", $old_id);
    $new_id = $explode_id[0] . ";" . ++$explode_id[1];

    // Estraggo il nodo da aggiornare
    $old_node = $out->getElementsByTagName('user')->item($count);

    // Creo il nuovo nodo
    $new_node = $dom->createElement('user');
    $new_node->setAttribute('id', $new_id);

    // Aggiorno il nodo
    $root->replaceChild($new_node, $old_node);

    // Salvo il file xml
    $dom->save("file.xml");
    ++
    $count;
    }
    Sto cercando di capire cos'è che non va, ma non riesco, questo è l'errore che mi restituisce:

    Catchable fatal error: Argument 2 passed to DOMNode::replaceChild() must be an instance of DOMNode, null given in /membri/sevenjeak/pctools-bann.php on line 25

    Di cosa si tratta?

    Sevenjeak
    Software developer and much more

  2. #2
    L'avatar di Xsescott
    Xsescott non è connesso AlterGuru
    Data registrazione
    08-02-2004
    Messaggi
    1,413

    Predefinito

    controlla bene cosa gli passi come secondo parametro, deve essere un DOMNode.
    "Quando il potere dell'amore supererà l'amore per il potere il mondo conoscerà la pace" Jimmy Hendrix


    [ Richiesta: http://www.unibologna.eu/ ] --> [Risposta: http://www.magazine.unibo.it/Magazin...al_Portale.htm Morale] -->[ http://www.anti-phishing.it/news/art...s.13062007.php ]
    consoliwebsite.altervista.org

  3. #3
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,767

    Predefinito

    Il secondo parametro è un nodo! ed è cosi composto:
    Codice:
    <user id='valore' />

    Sevenjeak
    Software developer and much more

  4. #4
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Te la faccio io una domanda: perché per l'aggiornamento crei dei nuovi nodi, quando potresti benissimo sfruttare quelli già esistenti?
    Codice PHP:
    foreach ($elements as $out)
    {
    $old_id = $out->getAttribute('id');
    $explode_id = explode(";", $old_id);
    $new_id = $explode_id[0] . ";" . ++$explode_id[1];
    $out->setAttribute('id', $new_id);
    }
    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  5. #5
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,767

    Predefinito

    Scusa per il ritardo nella risposta, cmq ho creato un nuovo nodo perché ho visto una cosa del genere su una guida, ora però ho risolto, cmq grazie, il tuo consiglio mi può sempre essere utile per modificare quello script o altri script futuri

    Sevenjeak
    Software developer and much more

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •