Visualizzazione risultati 1 fino 7 di 7

Discussione: [PHP/XML] Gestire dati prelevati da file XML

  1. #1
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito [PHP/XML] Gestire dati prelevati da file XML

    Buonasera,
    è la prima volta che mi capita (da quando ho iniziato ad applicarmi tra PHP e XML) di trovarmi obbligatoriamente davanti ad un codice del genere:

    Codice HTML:
    <?xml version="1.0" encoding="utf-8" ?>
    
    <menu titolo="Procida" type="0">
    <link href="#" txt="Hello" titolo="Nada" />
    </menu>
    
    <menu titolo="Informazioni" type="0" class="b">
    <link href="#" txt="Hello" titolo="Nada" class="bold" target="new" />
    </menu>
    Così non so come muovermi e vorrei una dritta per prelevare questi dati.

    C'è da dire che:
    • In "menu" l'attributo "class" è opzionale.
    • In "link" gli attributi "target" e "class" sono opzionali.


    Grazie a chi mi aiuta.
    Apprezzi l'aiuto? Offrimi un caffè!

  2. #2
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Cosa ci devi fare? Hai guardato simplexml?

  3. #3
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,745

    Predefinito

    Quel documento XML non è valido (o meglio, ben formato): non esiste l'elemento radice!
    Ultima modifica di karl94 : 13-12-2010 alle ore 00.01.01

  4. #4
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    Citazione Originalmente inviato da dreadnaut Visualizza messaggio
    Cosa ci devi fare? Hai guardato simplexml?
    Si certo. E' quello che uso con i normali file XML del tipo:

    Codice HTML:
    <?xml version="1.0" encoding="utf-8" ?>
    <root>
    
    <doc id="45">
    <file>OK</file>
    <txt>NEX</txt>
    <etc>ECC</etc>
    </doc>
    
    <doc id="47">
    <file>JI</file>
    <txt>PRE</txt>
    <etc>ECC</etc>
    </doc>
    
    ...
    </root>
    Però in questo caso è diverso l'XML e simplexml_load_file non funziona proprio.
    Citazione Originalmente inviato da karl94 Visualizza messaggio
    Quel documento XML non è valido (o meglio, ben formato): non esiste l'elemento radice!
    Lo so, ma è così che deve essere. Inoltre ho visto su altri siti PHP il sorgente XML e hanno anche loro in grossomodo questa struttura. Manca la radice? No Problem! L'aggiungo senza problemi...
    Apprezzi l'aiuto? Offrimi un caffè!

  5. #5
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Si, direi che buttare tutto il contenuto, tranne la prima riga, in un grosso <xml> ... </xml> sia la soluzione migliore in questo caso.

    Occhio quando risalvi il file, se devi.

  6. #6
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    Sai darmi una mano a gestire i dati prelevati da XML? Cioè come faccio a far funzionare simplexml_load_file senza problemi?

    Comunque ti dirò una sciocchezza (nel senso di esagerare) ma il file XML sarà massimo 50 righe e verrà modificato manualmente.
    Apprezzi l'aiuto? Offrimi un caffè!

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

    Predefinito

    Citazione Originalmente inviato da miki92 Visualizza messaggio
    Buonasera,
    è la prima volta che mi capita (da quando ho iniziato ad applicarmi tra PHP e XML) di trovarmi obbligatoriamente davanti ad un codice del genere:

    Codice HTML:
    <?xml version="1.0" encoding="utf-8" ?>
    
    <menu titolo="Procida" type="0">
    <link href="#" txt="Hello" titolo="Nada" />
    </menu>
    
    <menu titolo="Informazioni" type="0" class="b">
    <link href="#" txt="Hello" titolo="Nada" class="bold" target="new" />
    </menu>
    Così non so come muovermi e vorrei una dritta per prelevare questi dati.

    C'è da dire che:
    • In "menu" l'attributo "class" è opzionale.
    • In "link" gli attributi "target" e "class" sono opzionali.


    Grazie a chi mi aiuta.

    1) se vuoi che venga validato, cioè che vengano rispettate quelle regole, devi crearti un dtd o un xml-schema che le definisca, w3c consiglia xml-schema, anche se è più verboso come linguaggio è possibile definire regole che con dtd non possono essere definite, nel tuo caso va bene anche un dtd.

    2)quali dati devi prelevare? elemento menu, link e relativi attributi??

    è molto semplice da quanto ho visto:

    http://php.net/manual/en/simplexml.examples-basic.php

    ti consiglio di applicare x-path, perchè risparmi tanta fatica su documenti molto grandi e che prendono parametri come input per la selezione dei dati in modo dinamico.

    poi puoi usare anche il metodo standard stile array. considera tu i pro e i contro.

    ovviamente io parlo per esperienza con saxon su tomcat, quindi non saprei dirti altro di pratico riguardo a ciò.

    ciao
    "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

Regole di scrittura

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