Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente bannato
    Registrato dal
    Feb 2011
    Messaggi
    146

    Estrarre dati particolari da xml

    Estrarre dati un po più particolari.. di solito faccio cosi ma qui non funziona

    foreach($oXML->entry as $oEntry){
    $id_video = end(explode('/', $oEntry->id));

    echo $id_video .'
    ';
    }

    Come faccio con questi che sono particolari??
    Devo estrarre DATO 1, DATO 2, DATO 3

    <media:description type="plain">DATO 1</media:description>
    <media:keywords>DATO 2</media:keywords>
    <media:thumbnail url="DATO 3" height="90" width="120" time="00:00:17.500"/>

  2. #2
    Non si capisce quali dati devi estrarre!
    Comunque, mi sembra che ti sia necessario usare le espressioni regolari.

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  3. #3
    Utente bannato
    Registrato dal
    Feb 2011
    Messaggi
    146
    Corretto cosi si capisce?

    Come faccio cmq?

  4. #4
    Devi usare la funzione preg_match() ed studiare delle opportune espressioni regolari da passare alla funzione.
    Dai un'occhiata al link, vedi come impostare il lavoro, e se non riesci torna a postare qui.

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  5. #5
    Per faticare di meno (ma se ti cambia di una virgola il tag, smette di funzionare bene), puoi usare lo string replace.
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  6. #6
    Utente bannato
    Registrato dal
    Feb 2011
    Messaggi
    146
    in che senso?

    "Per faticare di meno (ma se ti cambia di una virgola il tag, smette di funzionare bene), puoi usare lo string replace."

  7. #7
    Conoscendo la struttura dell'XML che vai a parsare, puoi fare uno string replace andando a sostiutuire con stringhe vuote i tag XML.

    Codice PHP:
    $rigoXML "<media:description type=\"plain\">DATO 1</media:description>";

    $dato1 str_replace("<media:description type=\"plain\">"""$rigoXML);
    $dato1 str_replace("</media:description>"""$dato1); 
    Nel ciclo di foreach, vai a fare questi due replace consecutivi, ed ottieni quello che te cerchi.
    Un po' macchinoso come metodo, ma efficace (le espressioni regolari sono nettamente più veloci ed efficaci, anche se più difficili da digerire).
    Ti renderai conto da te, però, che se la struttura dell'XML cambia anche di una virgola, ti saltano i replace.
    Per capirci, basta che chi compila l'XML che vai a parsare, modifichi così:
    Codice PHP:
    <media:description type="plain-text">DATO 1</media:description
    Che il codice del tuo parser va a farsi benedire.
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  8. #8
    Utente bannato
    Registrato dal
    Feb 2011
    Messaggi
    146
    Ma non si potrebbe fare un codice che estrae tutto quello che sta dopo

    <media:description type=\"plain\">

    e prima di
    </media:description>

    come si fa?

  9. #9
    Originariamente inviato da alcio74
    Devi usare la funzione preg_match() ed studiare delle opportune espressioni regolari da passare alla funzione.
    Dai un'occhiata al link, vedi come impostare il lavoro, e se non riesci torna a postare qui.

    Mi autoquoto, perché avevo suggerito di leggere il link al manuale ufficiale... si vede che non lo avevi fatto!
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  10. #10
    Originariamente inviato da alcio74
    Mi autoquoto, perché avevo suggerito di leggere il link al manuale ufficiale... si vede che non lo avevi fatto!
    per fare il parse degli xml... mi sembrerebbe corretto usare le funzioni appositamente create per fare ciò!!!

    Quelli sono dei nodi...

    http://www.php.net/manual/en/simplex...t.children.php


    epiclavoro... già in altra sede ti ho detto che è complicatuccio e se vuoi capire come leggere gli xml con php questo è quello che devi studiare:
    http://www.php.net/manual/en/book.simplexml.php

    Se ti sembra complicato la risposta è : SI... LO E'!!!

    io ci sto lavorando da un pò per fare una classe che poi vorrei publicare sul mio sito... e sto incontrando non poche difficoltà.
    Ti dò questo codice... ma sappi che io mi son fatto un mazzo così (______________) per imparare a produrlo.
    Se riapri un topic sullo stesso argomento ti vengo a pigliare a casa!!!
    Codice PHP:
    <?php
    function download_page($path){ 
            
    $ch curl_init(); 
            
    curl_setopt($chCURLOPT_URL,$path); 
            
    curl_setopt($chCURLOPT_FAILONERROR,1); 
            
    curl_setopt($chCURLOPT_FOLLOWLOCATION,1); 
            
    curl_setopt($chCURLOPT_RETURNTRANSFER,1); 
            
    curl_setopt($chCURLOPT_TIMEOUT15); 
            
    $retValue curl_exec($ch);                       
            
    curl_close($ch); 
            return 
    $retValue

    $url='http://gdata.youtube.com/feeds/api/videos?q=football+-soccer&orderby=published&start-index=11&max-results=10&v=2'

    $sXML download_page($url); 
    $oXML = new SimpleXMLElement($sXML); 
    echo 
    '<pre>';
    //da qui in poi non so che fare 
    foreach($oXML->entry as $oEntry){ 
        
    $media $oEntry->children('http://search.yahoo.com/mrss/');
        
    $descrizione $media->group->description;
        
    $keywords $media->group->keywords;
        
    $thumb = array(
                
    $media->group->thumbnail[0]->attributes(),
                
    $media->group->thumbnail[1]->attributes(),
                
    $media->group->thumbnail[2]->attributes(),
                
    $media->group->thumbnail[3]->attributes()
                );
        echo 
    'Descrizione: '.$descrizione.'
    '
    ;
        echo 
    'keywords: '.$keywords.'
    '
    ;
        echo 
    'thumb: [img]'.$thumb[0].'[/img][img]'.$thumb[1].'[/img][img]'.$thumb[2].'[/img][img]'.$thumb[3].'[/img]
    '
    ;

    ?>
    http://www.miniscript.it
    Se ti sono stato di aiuto in qualche modo in questo forum iscriviti alla fan page di Miniscript - il mio blog di programmazione web.

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.