begin process at 2010 02 10 14:21:46
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Général

 > 

Problème parser XML avec SAX


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Problème parser XML avec SAX

jeudi 5 février 2009 à 10:27:21 | Problème parser XML avec SAX

shadowfox666

Bonjour,

Je suis actuellement en train de réaliser un parser XML fonctionnant avec SAX pour gérer de l'évènementiel.
Le fichier XML fait plus de 70mega et je n'ai pas besoin de tout son contenu donc j'ai exclu SimpleXML et DOM.

Je suis confronté à un problème lors de la lecture de mon fichier.
J'ai plusieurs balises portant le même nom.

<resort>
<photo type="summer">a</photo>
<photo type="summer">b</photo>
<photo type="summer">c</photo>
<photo type="winter">d</photo>
<photo type="winter">e</photo>
</resort>

Lorsque j'essaye de les faire afficher en faisant un echo, tout s'affiche d'un seul coup comme ceci :
a b c d e

Je n'arrive pas à traiter ligne par ligne, j'ai essayé la boucle for et le foreach mais je n'ai pas réussi.
Dans le meilleur des cas je n'arrive qu'à trier en fonction de l'attribut type.

Voici un morceau de mon code :

$photo="";
$tag="";
$insideresort=false;

function startElement($parser, $name, $attrs)
{//fonction1

    global $tag, $photo, $insideresort;

if ($insideresort)
    {//début
        $tag = $name;
    }//fin
    else if($name=="RESORT")
    {//début
    $insideresort=true;
    }//fin


}//fin fonction1

function endElement($parser, $name)
{//début fonction2
    global $tag, $photo, $insideresort;
    echo $Photo;
    $photo="";
    $tag="";
    $insideresort=false;


}//fin fonction2

function characterData($parser, $data)
{//Début fonction3
global $tag, $photo, $insideresort;

    if($insideresort==true)
    {//début if
        switch($tag)
        {//Début switch

            case("PHOTO"):
            $Photo.=$data;
            break;
        }//Fin switch
    }//Fin if

}//Fin fonction3


$xml_parser =xml_parser_create();
xml_set_element_handler($xml_parser, "startElement", "endElement");
xml_set_character_data_handler($xml_parser, "characterData");

$file ="mon.xml";


if (!($fp =fopen($file, "r"))) {
    die("Erreur : impossible d'ouvrir le fichier.");
}

while ($data = fread($fp, 4096))
{
    xml_parse($xml_parser, $data, feof($fp))
        or die(sprintf("XML error: %s at line %d",
            xml_error_string(xml_get_error_code($xml_parser)),
            xml_get_current_line_number($xml_parser)));
}

fclose($fp);
xml_parser_free($xml_parser);


Voici, donc si vous avez une idée pour palier mon problème, ce serait bien, j'imagine qu'il doit exister une solution, mais je cherche depuis bientôt plus de deux jours et je bloque...

NIRVANA is never enough ! It's in the spirit !


Cette discussion est classée dans : tag, xml, photo, parser, insideresort


Répondre à ce message

Sujets en rapport avec ce message

Parser xml en php [ par tahbre ] Bonjour à tous, Je dois accéder à un fichier xml qui est sur un autre site ftp que le mien, et je veux réaliser un parser en php de façon à stocker l parser xml [ par Nebraska ] bonjour,bon je débute salement en php; et j'ai besoin d'un parser xml. J'ai essayé ça mais bon ça marche pas :(Une bonne âme prèt a me dire ou je me s du php dans du xml [ par babbleshit ] Bonsoir ! J'ai téléchargé une gallerie photo en flash qui fonctionne à partir d'un ".xml". Et je voulais savoir si je pouvais faire une administration XML et EncryptedData ? [ par debuger ] Bonjour,J'aimerai savoir s'il est possible de Parser un fichier XML qui est crypté ! ? et celà avec une feuille de style XSL bien sur ?d'ailleurs comm XML SAX organisation d'un menu [ par jnbdzjnbdz ] Bonjour, jessais depuis quelque semaines de faire un systeme avec xml pour mon menu affiche de la facon définis par le code xml voici ce que sais supo Au secours : comment parser un fichier xml et inserer a la volé dans une base mysql [ par deblok83 ] Bonjour,     c'est mon premier post ici alors je me permet de me presenter je suis le webmaster de deblok83.com . j'ai un petit probleme je veux fair Aide pour mon Parser XML [ par ddpetit ] Bonjour à tous,  je suis en train de me créer un parser xml pour un de mes sites, un problème subsiste, j'ai réussi à faire le parser en lui meme, mai problème d'encodage lors de l'insertion dans une base un xml [ par ludovicanceaux ] Salut à tous, je voudrais enregistrer dans ma base SQL des données qui viennent à la base d'un fichier XML, seulement comme bcp de gens j'ai des probl Parser un document xml et créer un fichier [ par Noizet ] Hello,J'ai un document xml qui est sous cette forme :cours>   salle< Parser Flux XML afin de trouver une info [ par neoxdragon ] Salut, Ce que je souhaite faire c'est parser un XML de ce type: 1 Nom1 afin d'obtenir l'id &#224


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,154 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales