Page 1 sur 1

récupérer et afficher valeur d'un fichier xml

Posté : 22 mai 2014, 22:17
par anaiss
Bonsoir !!

Je m'excuse d'avance si ce sujet à déjà été traiter... mais je n'ai rien trouvé qui puisse régler mon problème...
Je dispose d'un fichier xml, et on m'a demandé de récupérer le titre et la description du fichier xml et de l'afficher. Donc je dois récupérer deux " valeurs " entre deux balise différentes du fichier xml. Pour cela, j'utilise le php ... j'ai essayé différents scripts en trouvant divers tuto sur internet mais je rencontre des erreurs et je ne comprends pas tout .
Par exemple, si dans mon fichier xml, je veux recupérer la valeur qu'il y a entre une balise strong ( ex : <strong> valeur </strong> ) et l'afficher avec php... Pourriez vous m'aider à construire la syntaxe ... me donner la fonction php la plus adaptée à utiliser .. ?

Je vous remercie d'avance

Anaïs

Re: récupérer et afficher valeur d'un fichier xml

Posté : 22 mai 2014, 23:48
par chapt0011
Salut,
dans un premier temps il faut ouvrir ton fichier en lecture et le parcourir ligne par ligne.
tu peux regarder du coté de preg_match() associée aux expressions rationnelles pour vérifier si ta ligne contient "<strong>qqch</strong>"
2 cas se présentent:
  • ne contient pas "<strong>qqch</strong>" : passe à la ligne suivante.
  • contient "<strong>qqch</strong>" : utilise preg_replace() pour remplacer dans la valeur de la ligne le balise <strong> et </strong> par rien et enregistrer cette valeur dans une variable temporaire.
Une fois que tu as terminé la lecture du fichier ferme le, et tu peux alors écrire le contenu de la variable temporaire.

Re: récupérer et afficher valeur d'un fichier xml

Posté : 23 mai 2014, 08:16
par moogli
Salut,

Non il existe des outils pour utiliser des fichiers XML.
Simplexml est la façon la plus simple de faire cette lecture ;)


@+

Re: récupérer et afficher valeur d'un fichier xml

Posté : 23 mai 2014, 09:32
par anaiss
Merci pour vos réponses !
moogli, j'ai essayé avec le simplexml .. Rien ne s'affiche : voici le code que j'essaye d'utiliser :

(J'essaye de récupérer une balise title ):

$racine = simplexml_load_file('monfichier.xml');
$body = $racine->body;
$element_title = $body->title;
echo $element_title;

Je n'arrive pas à le faire fonctionner....

chapt0011, je ne comprends pas trop le principe de preg_match.. désolé je débute..
Au début , j'avais essayé ce code :
foreach ($itemList as $item2) {
$title = '';
if ($title->getAttribute ("strong"))
{
if($title->print("strong")=="titre")
echo $title->nodeValue;
}
ça avait l'air de fonctionner sauf que j'ai une erreur à propos de la fonction " getAttribute"
Pouvez vous m'aider davante ? merci d'avance

Re: récupérer et afficher valeur d'un fichier xml

Posté : 23 mai 2014, 09:33
par telnes

Re: récupérer et afficher valeur d'un fichier xml

Posté : 23 mai 2014, 09:44
par anaiss
Merci telnes
Je viens de regarder .. Bon j'avoue que je suis larguée, il y a tout d'expliquer pourtant mais j'en comprends pas la moitié :cry:
Par exemple, dans mon fichier xml, j'ai :
<title>Visite de Saint-Lary au temps du chantier de Cap-de-Long</title>

Comment dois je faire pour récupérer cette balise avec php.. Pouvez vous me donner un exemple de syntaxe pour récupérer le texte entre les balises title et l'afficher avec php.. ça serait vraiment sympa :lol:

Merci à tous

Re: récupérer et afficher valeur d'un fichier xml

Posté : 23 mai 2014, 10:15
par chapt0011
Oups, je pensais qu anaiss voulais développer un parser XML lui même... :(

Bref pour simpleXML y'a pas 50 millions de chose a savoir:
<?php 

    if( ! $xml = simplexml_load_file('address.xml') )  //on charge le fichier xml et on test s'il est bien chargé
    { 
        echo 'unable to load XML file'; //si non on affiche qu'il n'est pas chargé
    } 
    else //s'il est bien chargé
    { 
        //tu peux accéder aux éléments comme ça: (un élément est défini par <qqch>element</qqch>
        foreach( $xml as $element ) 
        { 
            print_r( $element ); 
        } 
        //en utilisant Xpath tu peux aussi accéder à tous les éléments encadrés par la balise que tu veux:
        print_r($xml->xpath("//qqch")); affichera tous les éléments encadrés par <qqch>élément</qqch> qui se trouvent dans ton xml
    } 
?>
Comme les autres l'ont dit il y a plein d'exemple sur php.net!! et pour apprendre il va falloir mettre les mains dans le camboui ;)

Re: récupérer et afficher valeur d'un fichier xml

Posté : 23 mai 2014, 10:22
par anaiss
ok merci beaucoup je pense que je vais arriver à me débrouiller

Merci encore :)

Re: récupérer et afficher valeur d'un fichier xml

Posté : 23 mai 2014, 10:36
par telnes
hello

anaiss en 1 ca serait bien de poster le code XML ou un exemple et en 2 le code php qui marche pas et le tout dans des balises de mise en forme qui vont bien (bouton php et html)

++

Re: récupérer et afficher valeur d'un fichier xml

Posté : 23 mai 2014, 11:27
par anaiss
ok telnes
Voici le code xml : (désolé il est un peu long )

<?xml version='1.0' encoding="iso-8859-1"?>
<rss version="2.0">
<channel>
<title>Pays d’art et d’histoire des vallées d’Aure et du Louron</title>
<link>http://www.patrimoine-aure-louron.fr/</link>
<description>Le Pays d'art et d'histoire des Vallées d'Aure et du Louron valorise le patrimoine local.</description>
<language>fr-fr</language>
<pubDate>Tue, 13 May 2014 11:08:47 GMT</pubDate>
<lastBuildDate>Tue, 13 May 2014 11:08:47 GMT</lastBuildDate>
<item>
<title>Les églises classées de la vallée du Louron</title>
<link>http://www.patrimoine-aure-louron.fr/77 ... html</link>
<description><![CDATA[<strong>Circuit des &eacute;glises class&eacute;es de la vall&eacute;e du Louron<br /></strong>D&eacute;couverte des 3 &eacute;glises du Louron class&eacute;es Monument historique : Mont, Saint-Calixte et Vielle-Louron. <br />Retour sur leur histoire, leur architecture et leur d&eacute;cors peints.<br /><br /><em>Rv 14h00 devant l'&eacute;glise de Mont<br />Dur&eacute;e : 3h00<br /><br />Tarifs : Adultes : 7 &euro;, &eacute;tudiants ; demandeurs d'emploi : 4 &euro; ; enfants (8-18 ans) : 3 &euro; ; forfait famille (2 ad. + 2 enf.) : 18 &euro; ; moins de 8 ans : gratuit &nbsp;&nbsp;<br /><br /></em> &nbsp;]]></description>
<pubDate>2014-05-31</pubDate>
</item>
<item>
<title>Visite de Saint-Lary au temps du chantier de Cap-de-Long</title>
<link>http://www.patrimoine-aure-louron.fr/76 ... html</link>
<description><![CDATA[<strong>Visite de Saint-Lary au temps du chantier hydro&eacute;lectrique de Cap-de-Long<br /></strong>Circuit de d&eacute;couverte sur les traces des chantiers hydro&eacute;lectriques en vall&eacute;e d'Aure : histoire, &eacute;conomie, patrimoine....<br /><br /><em>RV 14h00 devant l'&eacute;glise de Saint-Lary</em><br /><em>Dur&eacute;e : 3h00 (pr&eacute;voir chaussures de marche)&nbsp;<br /><br />Uniquement sur r&eacute;servation au 06 42 17 66 31 (jusqu'&agrave; la veille 17h00)</em><br /><br /><em>Tarifs : adultes : 3 &euro; ; moins de 8 ans : gratuit.&nbsp;</em><br /><strong><br />&nbsp;</strong>]]></description>
<pubDate>2014-05-25</pubDate>
</item>
<item>
<title>Contes itinérants en vallée du Louron</title>
<link>http://www.patrimoine-aure-louron.fr/73 ... html</link>
<description><![CDATA[<strong>Contes itin&eacute;rants en vall&eacute;e du Louron<br /></strong>Laissez-vous guider par un accompagnateur en montagne pour rencontrer, aux d&eacute;tours de chemin, des conteurs. Ils vous emm&egrave;neront &agrave; travers leurs contes au son d'une fl&ucirc;te et d'un accord&eacute;on.&nbsp;<br /><br /><em>Sur r&eacute;servation au 06 42 17 66 31 &nbsp;(maxim. 20 pers.) Pr&eacute;voir chaussures de marche, Dur&eacute;e : 13h30-16h30<br />Lieu de RV pr&eacute;cis&eacute; lors de l'inscription&nbsp;<br />&nbsp;</em>]]></description>
<pubDate>2014-05-18</pubDate>
</item>
<item>
<title>Toute l année sur réservation pour les groupes</title>
<link>http://www.patrimoine-aure-louron.fr/5- ... html</link>
<description><![CDATA[<span class="textEdito">Le Pays d'art et d'histoire des vall&eacute;es d'Aure et du Louron propose des visites guid&eacute;es pour les groupes <span style="text-decoration: underline;">tout au long de l'ann&eacute;e</span>.<br /><em>De la visite d'un monument d'1h30 &agrave; 2h au circuit de d&eacute;couverte &agrave; la journ&eacute;e, les guides-conf&eacute;renciers (agr&eacute;&eacute;s par le Minist&egrave;re de la culture et de la communication) vous feront d&eacute;couvrir le patrimoine des vall&eacute;es d'Aure et du Louron avec toutes les comp&eacute;tences en termes de connaissance, d'accueil et de convivialit&eacute;.</em><br /><br /><strong>Pour toute information et demande de programme &agrave; la carte, n'h&eacute;sitez pas &agrave; contacter l'animatrice de l'architecture et du patrimoine du Pays d'art et d'histoire des vall&eacute;es d'Aure et du Louron au 05 62 98 42 46 ou par mail : [email protected]<br /></strong></span>]]></description>
<pubDate>0000-00-00</pubDate>
</item>
</channel>
</rss>

le code php déjà fait par qqn :
<?php
header("Access-Control-Allow-Origin: *");

$fichier = 'http://www.patrimoine-aure-louron.fr/actualites.xml';
$xml=simplexml_load_file($fichier);
print_r($xml)
$dom = new DOMDocument;
if (!$dom->load($fichier)) {die('Impossible de charger le fichier XML');}

$itemList = $dom->getElementsByTagName('item');


foreach ($itemList as $item2) {

$titre2 = $item2->getElementsByTagName('description');
$titreaa2 = iconv("UTF-8", "ISO-8859-1", $titre2->item(0)->nodeValue);
//$link2 = $item2->getElementsByTagName('link');

echo '<a class="oto">'; echo $titreaa2; echo '</a>';echo '</br>';}
/**/

?>
Avec ce code , tout s'affiche
SEULEMENT, moi je cherche à récupérer ce qu'il y a entre strong pour commencer, c'est à dire : <strong>Circuit des &eacute;glises class&eacute;es de la vall&eacute;e du Louron<br /></strong>
Mais lorsque je veux modifier le php, je n'ai que des erreurs :( .... une idée ?
Merci

Re: récupérer et afficher valeur d'un fichier xml

Posté : 23 mai 2014, 11:53
par telnes
hello

presque
et le tout dans des balises de mise en forme qui vont bien (bouton php et html)

Re: récupérer et afficher valeur d'un fichier xml

Posté : 23 mai 2014, 11:58
par anaiss
Euh comment ça presque ..
Avec ce code php, il y a tout d'afficher, mais moi je veux juste ce qu'il y a entre les balises strong ....

Re: récupérer et afficher valeur d'un fichier xml

Posté : 23 mai 2014, 13:40
par chapt0011
:shock: #-o Quand tu poste un message il y a possibilité de mettre le code sous forme de code!! Afin qu'on y voit plus clair :wink:
au dessus de la zone de texte où tu tape il y a des petits bouton magiques!
utilise le bouton HTML et copie colle entre les balises qui viennent d'apparaitre ton code XML et avec le bouton php idem pour le code php
donc fait un edit de ton ancien message et assure toi de mettre les bonnes balises tu verras c'est plus beau
comme ca:
<?php echo "mon beau code";?>
que comme ça: <?php echo "mon beau code"; ?>
=D>

Re: récupérer et afficher valeur d'un fichier xml

Posté : 23 mai 2014, 14:09
par Invité
ah d'accord excusez moi , je fais cela de suite :

Donc mon code php c'est :
<?php
header("Access-Control-Allow-Origin: *");

$fichier = 'http://www.patrimoine-aure-louron.fr/actualites.xml';
$dom = new DOMDocument;
if (!$dom->load($fichier)) {die('Impossible de charger le fichier XML');}
 
$itemList = $dom->getElementsByTagName('item');

/*foreach ($itemList as $item) {
 
$titre = $item->getElementsByTagName('title');
$titreaa = iconv("UTF-8", "ISO-8859-1", $titre->item(0)->nodeValue);
$link = $item->getElementsByTagName('link');
     
echo $titreaa; echo '</br>';}
*/

foreach ($itemList as $item2) {
 
$titre2 = $item2->getElementsByTagName('description');
$titreaa2 = iconv("UTF-8", "ISO-8859-1", $titre2->item(0)->nodeValue);
//$link2 = $item2->getElementsByTagName('link');
     
echo '<a class="oto">'; echo $titreaa2; echo '</a>';echo '</br>';}

?>
et mon fichier xml :
<?xml version='1.0' encoding="iso-8859-1"?>
<rss  version="2.0">
<channel>
<title>Pays d’art et d’histoire des vallées d’Aure et du Louron</title>
<link>http://www.patrimoine-aure-louron.fr/</link>
<description>Le Pays d'art et d'histoire des Vallées d'Aure et du Louron valorise le patrimoine local.</description>
<language>fr-fr</language>
<pubDate>Tue, 13 May 2014 11:08:47 GMT</pubDate>
<lastBuildDate>Tue, 13 May 2014 11:08:47 GMT</lastBuildDate>
<item>
<title>Les églises classées de la vallée du Louron</title>
<link>http://www.patrimoine-aure-louron.fr/77-les_eglises_classees_de_la_vallee_du_louron-19.html</link>
<description><![CDATA[<strong>Circuit des &eacute;glises class&eacute;es de la vall&eacute;e du Louron<br /></strong>D&eacute;couverte des 3 &eacute;glises du Louron class&eacute;es Monument historique : Mont, Saint-Calixte et Vielle-Louron. <br />Retour sur leur histoire, leur architecture et leur d&eacute;cors peints.<br /><br /><em>Rv 14h00 devant l'&eacute;glise de Mont<br />Dur&eacute;e : 3h00<br /><br />Tarifs : Adultes : 7 &euro;, &eacute;tudiants ; demandeurs d'emploi : 4 &euro; ; enfants (8-18 ans) : 3 &euro; ; forfait famille (2 ad. + 2 enf.) : 18 &euro; ; moins de 8 ans : gratuit &nbsp;&nbsp;<br /><br /></em> &nbsp;]]></description>
<pubDate>2014-05-31</pubDate>
</item>
<item>
<title>Visite de Saint-Lary au temps du chantier de Cap-de-Long</title>
<link>http://www.patrimoine-aure-louron.fr/76-visite_de_saint_lary_au_temps_du_chantier_de_cap_de_long-19.html</link>
<description><![CDATA[<strong>Visite de Saint-Lary au temps du chantier hydro&eacute;lectrique de Cap-de-Long<br /></strong>Circuit de d&eacute;couverte sur les traces des chantiers hydro&eacute;lectriques en vall&eacute;e d'Aure : histoire, &eacute;conomie, patrimoine....<br /><br /><em>RV 14h00 devant l'&eacute;glise de Saint-Lary</em><br /><em>Dur&eacute;e : 3h00 (pr&eacute;voir chaussures de marche)&nbsp;<br /><br />Uniquement sur r&eacute;servation au 06 42 17 66 31 (jusqu'&agrave; la veille 17h00)</em><br /><br /><em>Tarifs : adultes : 3 &euro; ; moins de 8 ans : gratuit.&nbsp;</em><br /><strong><br />&nbsp;</strong>]]></description>
<pubDate>2014-05-25</pubDate>
</item>
<item>
<title>Contes itinérants en vallée du Louron</title>
<link>http://www.patrimoine-aure-louron.fr/73-contes_itinerants_en_vallee_du_louron-19.html</link>
<description class="des"><![CDATA[<strong>Contes itin&eacute;rants en vall&eacute;e du Louron<br /></strong>Laissez-vous guider par un accompagnateur en montagne pour rencontrer, aux d&eacute;tours de chemin, des conteurs. Ils vous emm&egrave;neront &agrave; travers leurs contes au son d'une fl&ucirc;te et d'un accord&eacute;on.&nbsp;<br /><br /><em>Sur r&eacute;servation au 06 42 17 66 31 &nbsp;(maxim. 20 pers.) Pr&eacute;voir chaussures de marche, Dur&eacute;e : 13h30-16h30<br />Lieu de RV pr&eacute;cis&eacute; lors de l'inscription&nbsp;<br />&nbsp;</em>]]></description>
<pubDate>2014-05-18</pubDate>
</item>
<item>
<title>Toute l année sur réservation pour les groupes</title>
<link>http://www.patrimoine-aure-louron.fr/5-toute_l_annee_sur_reservation_pour_les_groupes-19.html</link>
<description><![CDATA[<span class="textEdito">Le Pays d'art et d'histoire des vall&eacute;es d'Aure et du Louron propose des visites guid&eacute;es pour les groupes <span style="text-decoration: underline;">tout au long de l'ann&eacute;e</span>.<br /><em>De la visite d'un monument d'1h30 &agrave; 2h au circuit de d&eacute;couverte &agrave; la journ&eacute;e, les guides-conf&eacute;renciers (agr&eacute;&eacute;s par le Minist&egrave;re de la culture et de la communication) vous feront d&eacute;couvrir le patrimoine des vall&eacute;es d'Aure et du Louron avec toutes les comp&eacute;tences en termes de connaissance, d'accueil et de convivialit&eacute;.</em><br /><br /><strong>Pour toute information et demande de programme &agrave; la carte, n'h&eacute;sitez pas &agrave; contacter l'animatrice de l'architecture et du patrimoine du Pays d'art et d'histoire des vall&eacute;es d'Aure et du Louron au 05 62 98 42 46 ou par mail : [email protected]<br /></strong></span>]]></description>
<pubDate>0000-00-00</pubDate>
</item>
</channel>
</rss>
Et mon but serait de récupérer simplement dans un premier temps
[<strong>Circuit des &eacute;glises class&eacute;es de la vall&eacute;e du Louron<br /></strong>
Comment dois je faire pour récupérer juste cela ?
merci

Re: récupérer et afficher valeur d'un fichier xml

Posté : 23 mai 2014, 14:49
par telnes
hello

1 il y a des erreurs HTML dans le code. le deuxième item à <strong> .... </strong> ....</strong> :shock: c'est caca

Si il y a un xml avec une balsie title tu ferais mieux de récupérer ca !


code php
<?php

//chemin vers le XML (mais il peut etre local)
$xmlPath = "http://www.patrimoine-aure-louron.fr/actualites.xml"; // c'est long de browser l'url ... pff

//créer un objet simple xml
$xml = $xml=simplexml_load_file($xmlPath);

//on fait une boucle sur les items qui sont dans <channel><item>...
foreach($xml->channel->item as $item){

	//echo "Description > ".$item->description; //on affiche la description
	
	$description = $item->description;
	$patern = "@<strong>.*<\/strong>@isU"; //regex
	if(preg_match($patern,$description,$matches)){ //récupère ce qui est entre <strong>...</strong>

		echo $matches[0]; //c'est dans un tableau
	
	}
	
	echo "<br /><br />";
}


?>

mais faut chercher un peut plus quand même :roll: