Convertir un fichier XML en chaîne de caractère

Manu
Invité n'ayant pas de compte PHPfrance

28 juin 2007, 16:57

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.

Mammouth du PHP | 693 Messages

28 juin 2007, 17:00

Je te conseille de te renseigner sur l'objet SimpleXML qui est parfait pour manipuler des documents XML

ViPHP
ViPHP | 2287 Messages

28 juin 2007, 17:27

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

Manu
Invité n'ayant pas de compte PHPfrance

28 juin 2007, 23:29

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;
?>

Mammouth du PHP | 693 Messages

28 juin 2007, 23:55

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.

Mammouth du PHP | 536 Messages

29 juin 2007, 11:11

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.
Un prof désespéré à son élève :
- Et maintenant, dessinez-moi un cercle au tableau... Voila... Alors qu'est-ce que c'est?
- Ben un cercle ?
- Non, c'est votre note, sortez !!

Petit nouveau ! | 1 Messages

29 juin 2007, 13:30

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

Mammouth du PHP | 1511 Messages

29 juin 2007, 23:57

Avec simpleXML tu fais simplement
$xml = simplexml_load_file('tonfichier.xml');
$total = count($xml->item);
c'est aussi simple que cela ;)

Mammouth du PHP | 693 Messages

30 juin 2007, 00:03

J'avais dit quoi ? :P