Page 1 sur 1

Preg_match et xml

Posté : 22 févr. 2007, 12:33
par Shgrooomph
j'ai un fichier xml de cette forme

Code : Tout sélectionner

<?xml version="1.0" encoding="utf-16"?> <Doc> <Titre>Beau titre</Titre> </Doc>
preg_match("/<Titre>(.*)<\/Titre>/s",$contenu,$titre);

echo $titre[1];
Ne donne pas "Beau titre". Qu'est-ce que j'ai raté ?

Posté : 22 févr. 2007, 13:24
par Jules Petibidon
hello,

si tu utilise php5, regarde plutot du coté de simpleXML au lieu de te prendre la tete sur les regexp :)

sinon, que te retourne preg_match ? à la limite pour etre sur essaye ceci :
echo '<pre>' , print_r( $titre , true ) , '</pre>';
c'est très pratique pour comprendre ce qui se passe...

accessoirement il peut etre intéressant de rendre ta regexp moins gourmande :

soit :
"/<Titre>(.*?)<\/Titre>/s"
ou
"/<Titre>(.*)<\/Titre>/sU"

a part cela, étant une quiche en regexp, je laisserai quelqu'un de plus compétant te renseigner ;)

Posté : 22 févr. 2007, 13:25
par Shgrooomph
Bon ma question n'inspire pas grand monde.

Posté : 22 févr. 2007, 14:18
par jojolapine
j'ai testé ta regexp, elle fonctionne...
Mais je plussoie tout de même Jules Petibidon, utilise simpleXML (php5)
ou lib XML => http://www.phpfrance.com/forums/voir_sujet-25462.php pour php4

Posté : 22 févr. 2007, 15:52
par Shgrooomph
Ok j'ai compris pourquoi ca ne marchait pas, mes xmls sont tous dans un format qui n'est pas pris en compte par php ....

Posté : 22 févr. 2007, 16:47
par jojolapine
c'est à dire ? :?

Posté : 28 févr. 2007, 14:10
par Victor BRITO
Ok j'ai compris pourquoi ca ne marchait pas, mes xmls sont tous dans un format qui n'est pas pris en compte par php ....
<?xml version="1.0" encoding="utf-16"?>
Ça vient peut-être de là. Auquel cas, pourquoi ne pas utiliser le codage UTF-8? :wink:

Posté : 28 févr. 2007, 15:33
par Hywan
merci jojolapine :)