Création
d'entreprise
Posez votre question Signaler

Parser un XML [Résolu]

powpowland 384Messages postés 3 mars 2008Date d'inscription 14 novembre 2011Dernière intervention - Dernière réponse le 29 oct. 2010 à 16:58
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
Lire la suite 

Parser un XML »

Suggestions
4 réponses
Réponse
+0
moins plus
Salut,

utilise la fonction : simplexml-load-file

http://www.php.net/manual/fr/function.simplexml-load-file.php
Ajouter un commentaire
Réponse
+0
moins plus
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 ( ) ) ) ) 
Ajouter un commentaire
Réponse
+0
moins plus
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.');
}
?>
Ajouter un commentaire
Réponse
+0
moins plus
Prenons le code suivant :

$xml = simplexml_load_file("mon flux");

$titre = $xml->channel->title;
$link = $xml->channel->link;
etc...

Ajouter un commentaire
Ce document intitulé « Parser un XML » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?