IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[XML] parser un fichier xml avec php pour refaire un xml.


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 25
    Points : 17
    Points
    17
    Par défaut [XML] parser un fichier xml avec php pour refaire un xml.
    Bonjour à vous tous,
    Tout est dans mon titre, je galère depuis une semaine pour faire quelque chose de propre et qui marche, mais je n'y arrive pas. Je n'arrive pas à récupérer les lignes xml de mon fichier results.xml pour les mettres dans mon fichier results4.xml.
    Mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    <?php
    //#################################################################################################
     
        $fichier = "http://omami.free.fr/results.xml";
     
    //#################################################################################################
     
        function fonctionBaliseOuvrante($parseur, $nomBalise, $tableauAttributs)
        {
            // En fait... nous nous conteterons de mémoriser le nom de la balise
            // afin d'en tenir compte dans la fonction "fonctionTexte"
     
            global $derniereBaliseRencontree;
    	global $xml;
     
            $derniereBaliseRencontree = $nomBalise;
        }
     
    //#################################################################################################
     
        function fonctionBaliseFermante($parseur, $nomBalise)
        {
            // On oublie la dernière balise rencontrée
     
    	global $derniereBaliseRencontree;
    	global $xml;
     
            $derniereBaliseRencontree = "";
        }
     
    //#################################################################################################
     
        function fonctionTexte($parseur, $texte)
        {
            global $derniereBaliseRencontree;
    	global $xml;
     
            // Selon les cas, nous affichons le texte
            // ou nous proposons un lien
            // ATTENTION: Par défaut les noms des balises sont
            //            mises en majuscules
     
            switch ($derniereBaliseRencontree) {
     
    		case "pseudo": 
                    $xml='<pseudo>'.$texte.'</pseudo>';
                    break;
     
    		case "pubDate": 
                    $xml.='<pubDate>'.$texte.'</pubDate>';
                    break;
     
    		case "title": 
                    $xml.='<title>'.$texte.'</title>';
                    break;
     
    		case "description": 
                    $xml.='<description>'.$texte.'</description>';
                    break;
     
    		case "link":
                    $xml.='<link>'.$texte.'</link>';
                    break;
     
    		case "geo:lat":
                    $xml.='<geo:lat>'.$texte.'</geo:lat>';
                    break;
     
    		case "geo:long":
                    $xml.='<geo:long>'.$texte.'</geo:long>';
                    break;
            }
    	return $xml;         
        }
     
    //#################################################################################################
     
    	function ecriturefichier($fichierecriture, $b)
        {
            global $derniereBaliseRencontree;
           	global $xml;
     
    	$fileaecrire= fopen($fichierecriture,"w+");
    	$_xml1='<?xml version="1.0" encoding="iso-8859-1" standalone="yes"?>'; 
    	$_xml1.='<rss version="2.0" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:dc="http://purl.org/dc/elements/1.1/">';
    	$_xml1.='<channel>';
    	$_xml1.='<title>Listing of Omami</title>';
    	$_xml1.='<description>Listing</description>';
    	$_xml1.='<link>http://omami.free.fr/</link>';
    	$_xml1.='<dc:publisher>Site Omami</dc:publisher>';
    	$_xml1.='<pubDate>'.date('d/m/Y').'</pubDate>';
     
    	$_xml2='</channel>';
    	$_xml2.='</rss>';
     
    	$aa=$_xml1.$b.$_xml2;
    	fwrite($fileaecrire,$aa);
     	fclose($fileaecrire);
        }
     
    //#################################################################################################
        // Création du parseur XML
        $parseurXML = xml_parser_create();
     
        // Je précise le nom des fonctions à appeler
        // lorsque des balises ouvrantes ou fermantes sont rencontrées
        xml_set_element_handler($parseurXML, "fonctionBaliseOuvrante", "fonctionBaliseFermante");
     
        // Je précise le nom de la fonction à appeler
        // lorsque du texte est rencontré
        xml_set_character_data_handler($parseurXML, "fonctionTexte");
     
        // Ouverture du fichier
        $fp = fopen($fichier, "r");
        if (!$fp) die("Impossible d'ouvrir le fichier XML");
     
        // Lecture ligne par ligne
        while ( $ligneXML = fgets($fp, 1024)) {
            // Analyse de la ligne
            // REM: feof($fp) retourne TRUE s'il s'agit de la dernière
            //      ligne du fichier.
     
    	xml_parse($parseurXML, $ligneXML, feof($fp)) or
                die("Erreur XML");
     
        }
     
        xml_parser_free($parseurXML);
        fclose($fp);
     
        ecriturefichier('results4.xml',$xml);
        echo "XML has been written.<a href='results4.xml'>View the XML.</a>";	
    ?>
    Je n'arrive pas à sortir la variable de ma fonction. L'erreur doit être énorme, mais je ne la vois pas.

    Merci par avance pour la réponse,

    A+ Stéphane

  2. #2
    Membre à l'essai
    Inscrit en
    Octobre 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 25
    Points : 17
    Points
    17
    Par défaut [Résolu]J'ai cherché, j'ai vu mon erreur.
    Erreur classique d'apostrophe.
    Merci pour l'aide.
    A+ Stéphane

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. parser un fichier log avec un script php
    Par franco9 dans le forum Langage
    Réponses: 1
    Dernier message: 01/03/2013, 21h08
  2. [Drupal] Parser XML avec PHP pour générer du JS
    Par hitmax dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 17
    Dernier message: 15/06/2011, 15h27
  3. [DOM] Transformer un fichier xml en fichier sql avec PHP
    Par takepaf dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 01/12/2007, 12h11
  4. [DOM XML] Insertion données dans fichier XML avec PHP pour Flash ?
    Par ExSter dans le forum Bibliothèques et frameworks
    Réponses: 17
    Dernier message: 10/05/2006, 11h16
  5. [FPDF] Cherche informations pour afficher un fichier pdf avec PHP
    Par Hans_B dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 22/03/2006, 11h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo