Page 1 sur 1
Convertir un fichier XML en chaîne de caractère
Posté : 28 juin 2007, 16:57
par Manu
Bonjour,
J'aimerais en fait réaliser une fonction qui permet de compter le nombre d'item que contient un fichier XML.
Pour cela je comptais utiliser la fonction substr_count qui prend 2 chaîne de caractères en paramètres.
Donc il me faudrait convertir mon fichier XML en chaîne de caractères pour pouvoir la passer en paramètre.
Comment faire ?
Merci par avance.
Posté : 28 juin 2007, 17:00
par orgerix
Je te conseille de te renseigner sur l'objet SimpleXML qui est parfait pour manipuler des documents XML
Re: Convertir un fichier XML en chaîne de caractère
Posté : 28 juin 2007, 17:27
par Calimero
Donc il me faudrait convertir mon fichier XML en chaîne de caractères pour pouvoir la passer en paramètre.
file_get_contents() fait ça parfaitement. Un fichier XML est un simple fichier texte, le convertir en chaîne de caractères revient simplement à le lire. Mais était-ce bien le but de ta question ?

Posté : 28 juin 2007, 23:29
par Manu
Je te conseille de te renseigner sur l'objet SimpleXML qui est parfait pour manipuler des documents XML
Merci, j'ai utilisé la fonction simplxml_load_file().
Voici mon code :
<?php
$xml=simplexml_load_file("http://...................actu_rss.xml");
$sString = $xml->asXML();
$sOcc = '<item>';
$iCpt = substr_count ($sString, $sOcc);
echo $iCpt;
?>
Posté : 28 juin 2007, 23:55
par orgerix
Mouais, la c'était pas une très bonne idée d'utiliser SimpleXML...
Dans ce cas, file_get_contents() aurait été plus approprié.
Cependant, avec SimpleXML, si la balise <item> est à la racine, tu peux faire
<?php
$xml=simplexml_load_file("http://...................actu_rss.xml");
$iCpt = count($xml->item);
echo $iCpt;
?>
Sinon, un petit traitement plus élaboré pourrai donner le même résultat.
Posté : 29 juin 2007, 11:11
par béka
sinon je pense qu'en utilsant une boucle for, tu peux arriver à compte le nombre d'éléments qu'il y a dans ton fichier xml.
Posté : 29 juin 2007, 13:30
par Manu
sinon je pense qu'en utilsant une boucle for, tu peux arriver à compte le nombre d'éléments qu'il y a dans ton fichier xml.
J'y ai pensé mais je pense que le plus simple est d'utiliser simpleXML pour ceux qui tourne en PHP5.
Sinon avec la fonction file_get_contents() ça marche très bien :
<?php
function compteurItem($urlXML){
//$xml=simplexml_load_file($url); => PHP5
//$stringXML = $xml->asXML(); => PHP5
$stringXML=file_get_contents($urlXML);
$sOcc = '<item>';
$iCpt = substr_count ($stringXML, $sOcc);
return $iCpt;
}
?>
Merci à tous
Posté : 29 juin 2007, 23:57
par momox
Avec simpleXML tu fais simplement
$xml = simplexml_load_file('tonfichier.xml');
$total = count($xml->item);
c'est aussi simple que cela

Posté : 30 juin 2007, 00:03
par orgerix
J'avais dit quoi ?
