Visualizzazione dei risultati da 1 a 7 su 7

Hybrid View

  1. #1
    Hai raggione, correggo l'errore (dovuto ad un copia-incolla errato):

    codice HTML:
            <nodo idn="1">
                <genere idg="1">Classic Rock</genere>
                <album id="1">
                    <nome>...</nome>
                    <prezzo>...</prezzo>
                    <artista>...</artista>
                </album>
                <album id="2">
                    <nome>...</nome>
                    <prezzo>...</prezzo>
                    <artista>...</artista>
                </album>
                <album id="3">
                    <nome>...</nome>
                    <prezzo>...</prezzo>
                    <artista>...</artista>
                </album>
            </nodo>    
    
            <nodo idn="2">
                <genere idg="2">Hard Rock</genere>
                <album id="4">
                    <nome>...</nome>
                    <prezzo>...</prezzo>
                    <artista>...</artista>
                </album>
                <album id="5">
                    <nome>...</nome>
                    <prezzo>...</prezzo>
                    <artista>...</artista>
                </album>
            </nodo>

    Non capisco dove finisce il nodo <genere idg="2"> e quali siano i figli <nome> di tale nodo
    Non so se ho ben capito la domanda, ma il nodo genere serve per descrivere il <nodo idn="2">. Inizia e finisce sulla stessa riga, è il primo nodo e non contiene altri nodi, solo il testo (forse correggendo l'esempio si capisce meglio).

    Per "navigare" l'xml potresti usare xpath ma non ho capito bene cosa vuoi ottenere.
    XPath effettivamente lo uso ma ciò che voglio fare è visualizzare ad esempio una lista degli album (con nome, prezzo e artista) del genere "Hard Rock", quindi i figli del <nodo idn="2">. In poche parole devo ottenere:

    Genere: Hard Rock
    NomeAlbum4 - Prezzo - Artista
    NomeAlbum5 - Prezzo - Artista

  2. #2
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,778
    XPath effettivamente lo uso ma ciò che voglio fare è visualizzare ad esempio una lista degli album (con nome, prezzo e artista) del genere "Hard Rock", quindi i figli del <nodo idn="2">. In poche parole devo ottenere:

    Genere: Hard Rock
    NomeAlbum4 - Prezzo - Artista
    NomeAlbum5 - Prezzo - Artista
    Vedi un po' così:
    Codice PHP:
    <?php
    $tuoxml 
    = new SimpleXMLElement('<xml>
            <nodo idn="1">
                <genere idg="1">Classic Rock</genere>
                <album id="1"><nome>...</nome><prezzo>...</prezzo><artista>...</artista></album>
                <album id="2"><nome>...</nome><prezzo>...</prezzo><artista>...</artista></album>
                <album id="3"><nome>...</nome><prezzo>...</prezzo><artista>...</artista></album>
            </nodo>
            <nodo idn="2">
                <genere idg="2">Hard Rock</genere>
                <album id="4"><nome>pippo</nome><prezzo>123</prezzo><artista>topolino</artista></album>
                <album id="5"><nome>pluto</nome><prezzo>456</prezzo><artista>paperino</artista></album>
            </nodo>
            </xml>'
    );
            
    $idg 2// id del genere (2 = "Hard Rock")

    $nodo $tuoxml->xpath('nodo[genere[@idg="'.$idg.'"]]'); // seleziono il nodo filtrandolo per il genere
    $str "Genere: <b>".$nodo[0]->genere."</b>"     // registro il "genere"
        
    "<i>(".count($nodo[0]->album)." albums)</i><br>"// registro il numero di albums presenti 

    foreach ($nodo[0]->album as $album){ // ciclo i nodi "album" figli del nodo selezionato
        
    $str.=$album->nome." - "             // registro il nome di questo album
            
    $album->prezzo." &euro; - " // registro il prezzo
            
    $album->artista."<br>";       // registro l'artista
        
    }

    echo 
    $str// stampo la stringa html

    /* ------ Output ------ //

    Genere: Hard Rock(2 albums)
    pippo - 123 € - topolino
    pluto - 456 € - paperino

    // --------------------- */
    ?>
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

Tag per questa discussione

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.