Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Come stampare un solo elemento con DOM-XML?

    Ciao a tutti ragazzi,

    volevo chiedere, nella mia pagina php voglio far stampare le
    informazioni contenute nel file xml, utilizzando la libreria domxml e
    in particolare:

    Codice PHP:
    <?php
                $node 
    $root->get_elements_by_tagname("Description");
                    foreach(
    $node as $it) {
                      echo 
    $it->get_content();
                   }
    ?>
    Codice PHP:
    <ResearchGroup
    picture
    ="http://www.dia.uniroma3.it/~compunet/images/compunet_banner.gif">
            <
    NameGroup>Computer Networks Research Group</NameGroup>
            <
    Description>computer networks</Description>
            <
    Faculty>[url]www.dia.uniroma3.it[/url]</Faculty>

    <
    ResearchGroup picture="http://www.inf.uniroma3.it/research/GD.html">
            <
    NameGroup>Graph Drawing</NameGroup>
            <
    Description>
            
    Algorithm Engineering Research Group
    </Description>
            <
    Faculty>[url]http://www.dia.uniroma3.it/research/ACG.html[/url]</Faculty>
            
    <Department>[url]http://www.web.dia.uniroma3.it/[/url]</Department>
            
    <University>[url]http://www.uniroma3.it[/url]</University> 
    il problema è che la funzione get_elements_by tagname(String) stampa
    tutti i valori contenuti degli elementi data quella String e li mette
    dentro un array!
    Es. se voglio la Description solo del primo researchGroup, con questa
    funzione mi da tutti i description.
    Come Posso Fare, conoscete qualche funzione o qualche alternativa per
    risolvere il pr?
    Grazie in Anticipo
    L'importante no è quello che trovi alla fine di una corsa.
    L'importante è quello che provi mentre corri.
    ----

  2. #2
    puoi stampare un solo elemento dell'array
    Codice PHP:
    echo ($array['key']); 

  3. #3
    potresti spiegarti meglio?!! non ho capito quel 'key'.
    Grazie
    L'importante no è quello che trovi alla fine di una corsa.
    L'importante è quello che provi mentre corri.
    ----

  4. #4
    key = chiave e può essere numerica oppure una vera e propria chiave alfanumerica (una stringa)

    per esempio vuoi stampare il terzo elemento dell'array fai

    Codice PHP:
    echo ($array[2]); 
    (negli array il primo valore è 0)

  5. #5
    ho provato come dici tu...!!
    Soltanto che alla chiamata:

    Codice PHP:
    $node $root->get_elements_by_tagname("NameGroup");
          echo (
    $node[1]); 
    Come output mi stampa:

    Codice PHP:
    OBJECT 
    Ne sai qualcosa al riguardo?
    Grazie
    L'importante no è quello che trovi alla fine di una corsa.
    L'importante è quello che provi mentre corri.
    ----

  6. #6
    evidentemente quell'elemento dell'array è un oggetto (oserei dire un DOM_xml_ Object o qualcosa del genere...forse DomElement... per conferma fai un print_r)

    invece nell'array non vuoi mettere tutto l'oggetto ma solo una sua proprietà... (l'attributo Description no?)
    dovrai allora usare http://it2.php.net/manual/it/functio...-attribute.php
    prova:
    Codice PHP:
    $node $root->get_elements_by_tagname("NameGroup")->get_attribute('Description');


    // e dopo il foreach
    echo ($node[1]); 
    ora può darsi che qualche errore ci sia... prova un po'
    il get_content non mi ricordo come funzia


    edit:

    questo ti fa stampare tutte le descrizioni
    Codice PHP:
    <?php
                $node 
    $root->get_elements_by_tagname("Description");
                    foreach(
    $node as $it) {
                      echo 
    $it->get_attribute('Description');
                   }
    ?>
    se vuoi stamparne solo una e sai la posizione non hai manco bisogno del foreach
    Codice PHP:
    <?php
                $node 
    $root->get_elements_by_tagname("Description");               
                 echo 
    $node[0]->get_attribute('Description');
                 
    ?>
    così dovrebbe stamparti la prima


    edit 2:
    sono un fagiano ho visto ora che tu non vuoi estrarre un attributo, ma il valore del nodo

    usa DomNode->node_value

  7. #7
    Ti ringrazio infinitamente....
    adesso provo il tutto e vediamo che succede.

    grazie ancora.
    L'importante no è quello che trovi alla fine di una corsa.
    L'importante è quello che provi mentre corri.
    ----

  8. #8
    Ho provato così, soltanto che l'interprete php non solleva eccezioni a tempo di compilazione e in output non mostra il valore è come se la funzione node_value() non funzionasse.
    Qualcuno ha dei consigli??!!!

    grazie
    Codice PHP:
        <?php
            $node 
    $root->get_elements_by_tagname("Description");
            echo 
    $node[1]->node_value();
        
    //    foreach($node as $it) {
         //      echo $it->get_content();        
    //}            
        
    ?>
    L'importante no è quello che trovi alla fine di una corsa.
    L'importante è quello che provi mentre corri.
    ----

  9. #9
    se fai print_r di $node che dice?

  10. #10
    Codice PHP:
    Array ( [0] => domelement Object ( [type] => [tagname] => NameGroup [0] => [1] => 9124688 ) [1] => domelement Object ( [type] => [tagname] => NameGroup [0] => [1] => 9134000 ) ) 
    non riesco a capire, però?
    L'importante no è quello che trovi alla fine di una corsa.
    L'importante è quello che provi mentre corri.
    ----

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.