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 ? :P