Visualizzazione risultati 1 fino 9 di 9

Discussione: Interrogazione DOM

  1. #1
    tryhere non è connesso AlterVistiano
    Data registrazione
    19-09-2007
    Messaggi
    757

    Predefinito Interrogazione DOM

    Codice PHP:
    $dom=new DOMDocument();
    $xml="<?xml version="1.0"?><nodo><nome>Mario</nome><cognome>Rossi</cognome></nodo>";
    $dom->loadXML($xml);
    Ora vorrei, sempre usando DOM, estrarre da $dom il valore del nodo nome.
    Come si fa?

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

    Predefinito

    cerca, cerca..anche questo esempio potrebbe risolvere ilt uo problema..
    http://forum.it.altervista.org/php-m...-connessi.html
    "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
    tryhere non è connesso AlterVistiano
    Data registrazione
    19-09-2007
    Messaggi
    757

    Predefinito

    Codice PHP:
    $dom = new DOMdocument();
    $dom->load($filename);
    $root = $dom->documentElement;
    $elements = $root->getElementsByTagName('user');
    $trovato = 0;
    foreach (
    $elements as $ln)
    {
    // Estrazione nodo tag <address>
    $value_address = $ln->getElementsByTagName('address');
    $value_address = $value_address->item(0)->nodeValue;
    // Estrazione nodo tag <timestamp>
    $value_timestamp = $ln->getElementsByTagName('timestamp');
    $value_timestamp = $value_timestamp->item(0)->nodeValue;
    if (
    $IP == $value_address && $value_timestamp != $limit)
    $trovato = 1;
    }
    Se io avessi un solo nodo user servirebbe comunque il foreach?

  4. #4
    L'avatar di mycarlo
    mycarlo non è connesso Utente attivo
    Data registrazione
    06-10-2009
    Residenza
    $this->s50
    Messaggi
    467

    Predefinito

    Ovvio.

    Codice PHP:
    $dom = new DOMdocument();
    $dom->load($filename);
    $root = $dom->documentElement;
    $elements = $root->getElementsByTagName('user');
    $trovato = 0;
    $ln = $elements[0];
    // Estrazione nodo tag <address>
    $value_address = $ln->getElementsByTagName('address');
    $value_address = $value_address->item(0)->nodeValue;
    // Estrazione nodo tag <timestamp>
    $value_timestamp = $ln->getElementsByTagName('timestamp');
    $value_timestamp = $value_timestamp->item(0)->nodeValue;
    if (
    $IP == $value_address && $value_timestamp != $limit)
    $trovato = 1;
    Credo funzioni, con simplexml faccio così io.

    Saluti!

  5. #5
    tryhere non è connesso AlterVistiano
    Data registrazione
    19-09-2007
    Messaggi
    757

    Predefinito

    e se l'elemento user non esistesse?

  6. #6
    L'avatar di mycarlo
    mycarlo non è connesso Utente attivo
    Data registrazione
    06-10-2009
    Residenza
    $this->s50
    Messaggi
    467

    Predefinito

    Codice PHP:
    $dom = new DOMdocument();
    $dom->load($filename);
    $root = $dom->documentElement;
    $trovato = 0;
    if (
    $elements = $root->getElementsByTagName('user')) {
    $ln = $elements[0];
    // Estrazione nodo tag <address>
    $value_address = $ln->getElementsByTagName('address');
    $value_address = $value_address->item(0)->nodeValue;
    // Estrazione nodo tag <timestamp>
    $value_timestamp = $ln->getElementsByTagName('timestamp');
    $value_timestamp = $value_timestamp->item(0)->nodeValue;
    if (
    $IP == $value_address && $value_timestamp != $limit)
    $trovato = 1;
    } else {
    echo
    "elemento user non esiste!";
    }
    Prova a fare così altrimenti invece di usare else controlli se $trovato è true.

    Saluti!

  7. #7
    tryhere non è connesso AlterVistiano
    Data registrazione
    19-09-2007
    Messaggi
    757

    Predefinito

    Il mio xml è:
    Codice:
    <?xml version="1.0" ?>
    <a>
    <b>ciao</b>
    </a>
    Non mi è chiaro come ottengo il valore ciao dopo aver inizializzato $dom.

  8. #8
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

    Predefinito

    Per ottenere il valore di b fai così:
    Codice PHP:
    <?php
    $dom
    = new DOMDocument();
    $xml = '<?xml version="1.0"?><a><b>ciao</b></a>';
    $dom->loadXML($xml);
    $node_b_list = $dom->getElementsByTagName("b");
    foreach(
    $node_b_list as $node_b){
    echo
    $node_b->nodeValue;
    }
    ?>
    oppure se b è uno solo, così:
    Codice PHP:
    <?php
    $dom
    = new DOMDocument();
    $xml = '<?xml version="1.0"?><a><b>ciao</b></a>';
    $dom->loadXML($xml);
    $node_b_list = $dom->getElementsByTagName("b");
    echo
    $node_b_list->item(0)->nodeValue;
    ?>
    Ultima modifica di andreafallico : 21-11-2009 alle ore 19.10.02

  9. #9
    tryhere non è connesso AlterVistiano
    Data registrazione
    19-09-2007
    Messaggi
    757

    Predefinito

    Grazie mille a tutti!

Regole di scrittura

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