Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2011
    residenza
    bergamo
    Messaggi
    1,027

    [xml] manipolare elemento

    buongiorno,

    ho un problema con degli elementi di un file xml e non saprei come poterlo risolvere sono due giorni che sono così

    il problema è questo:

    ho questo maledetto file xml che viene fornito da un software che lo tiene aggiornato ogni notte, il file xml è strutturato in questo modo:

    <?xml version="1.0" encoding="utf-8"?>
    <import>
    <!--Import del 13/11/2015 20.00.34-->
    <immobili>
    <immobile id="10">
    <id_agenzia>1</id_agenzia>
    <rif>7200</rif>
    ..................................
    <url1>http://agestanet.risorseimmobiliari.it/public/annunci/00001/0659554/F_605634.jpg</url1>
    <url2>http://agestanet.risorseimmobiliari.it/public/annunci/00001/0659554/F_662524.jpg</url2>

    .......................................


    e così via...
    per leggere il contenuto di questo file xml ho usato SimpleXml in PHP e ho fatto così:

    Codice PHP:
    <?php$xml=simplexml_load_file("esempio.xml") or die("Error: Cannot create object");foreach($xml->immobili[0]->children() as $immobile){    echo "id agenzia: ".$immobile->id_agenzia."<br/>";
    .........................
    e va tutto bene finchè non arriva il momento in cui devo leggere l'url1, l'url2 e i successivi in quanto non ogni children ha l'url se ne ha almeno uno allora il campo si chiama <url1> e può avere più di uno, quindi può averne anche 5, 10, 100, e così via

    quindi per leggere questo campo <urlNUMERO> ho scritto questo codice che ovviamente non funziona

    Codice PHP:
    if($immobile->url1){        echo "gallery:<br/>";        $find true;        $n_url 0;        $cont 0;        while($find == true){            $n_url++;            $url $immobile->url.$n_url;            $cont++;            if($cont == 10){                $find false;            }            else{                echo "<img src=$url />";            }        }    } 

    se volete potrete vedere una dimostrazione online all'indirizzo

    http://www.francescopassanante.com/demo/

    dove si visualizza l'errore che restituisce...

  2. #2
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    puoi usare una cosa tipo questa
    Codice PHP:
    foreach($immobile->xpath("*[starts-with(local-name(), 'url')]") as $url) {
        echo 
    $url;


  3. #3
    Utente di HTML.it
    Registrato dal
    May 2011
    residenza
    bergamo
    Messaggi
    1,027
    ho risolto così:

    Codice PHP:
    <?php$xml=simplexml_load_file("esempio.xml") or die("Error: Cannot create object");foreach($xml->immobili[0]->children() as $immobile){    echo "id agenzia: ".$immobile->id_agenzia."<br/>";    echo "rif: ".$immobile->rif."<br/>";    echo "contratto: ".$immobile->contratto."<br/>";    echo "data: ".$immobile->data."<br/>";    echo "testo: ".$immobile->testo."<br/>";        if($immobile->url1){        echo "gallery:<br/>";        $find true;        $n_url 0;        while($find == true){            $n_url++;            $url $immobile->{"url".$n_url};            if(!$url){                $find false;            }            else{                echo "<img src=$url />";            }        }    }    echo "<br/><br/>";}?>

    un'altra domanda, ma nel caso io il file xml l'abbia su un sito esterno e lo debba recuperare tramite url come potrei fare?

  4. #4
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,002
    Puoi usare la libreria Curl.

  5. #5
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    ma perché ti vuoi complicare la vita? prova il mio codice...
    per recuperare il file puoi provare anche con file_get_contents()

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.