Parser un XML

Résolu
powpowland Messages postés 395 Date d'inscription   Statut Membre Dernière intervention   -  
le_joker_fou Messages postés 765 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

je suis à la recherche d'un parseur XML en PHP qui classe chaque balise dans un tableau...

en gros qu'il mette les contenus de TITLE dans un tableau, en gros qu'il mette les contenus de DESCRIPTION dans un tableau, etc...

j'ai bien cherché mais beaucoup ne faisait que de l'affichage pur, pas de classement ;
et ils avaient tous un problème majeur (dans la balise TITLE, un retour à la ligne dès le premier caractère spécial rencontré; dans le DESCRIPTION, retour à ligne impromptu au milieu de mots, de phrases... j'en passe et des meilleurs...)

en vous remerciant

4 réponses

  1. powpowland Messages postés 395 Date d'inscription   Statut Membre Dernière intervention   20
     
    ok merci...

    par contre comment on récupère les infos après ?

    en gros mon XML ressemble à ça :

    <?xml version="1.0" encoding="ISO-8859-1"?>
    <rss version="2.0">
    
        <channel>  
    
            <title>test</title>
            <link>test.com</link>
            <description>testetetststsufeg ugfu</description>
    
            <item>
                <title>TEST 01</title>
                <link>http://test.com/01</link>
                <guid isPermaLink='false'>0</guid>
                <description><![CDATA[un texte test 01]]></description>
            </item>
    
        </channel>
    </rss>
    


    et le simplexml-load-file me retourne ça :

    SimpleXMLElement Object ( [@attributes] => Array ( [version] => 2.0 ) [channel] => SimpleXMLElement Object ( [title] => test [link] => test.com [description] => testetetststsufeg ugfu [item] => SimpleXMLElement Object ( [title] => TEST 01 [link] => http://test.com/01 [guid] => 0 [description] => SimpleXMLElement Object ( ) ) ) ) 
    0
  2. powpowland Messages postés 395 Date d'inscription   Statut Membre Dernière intervention   20
     
    c'est bon j'ai trouvé...

    <?php
    
    if (file_exists('../fluxtest.xml')) {
        $xml = simplexml_load_file('../fluxtest.xml');
    	//print_r($xml);
    	$num=0;
    	
    	foreach ($xml->channel->item as $value){
        $num++;
        $title{$num} = $value->title;
        $link{$num} = $value->link;
    }
    
    for ( ; $num > 0; $num--){
        echo $title{$num}."<br>".$link{$num}."<br>";
    }
    	
    } else {
        exit('Echec lors de l\'ouverture du fichier xml.');
    }
    ?>
    
    0
  3. le_joker_fou Messages postés 765 Date d'inscription   Statut Membre Dernière intervention   239
     
    Prenons le code suivant :

    $xml = simplexml_load_file("mon flux");
    
    $titre = $xml->channel->title;
    $link = $xml->channel->link;
    etc...
    
    
    0