XML et PHP5, codage de caractères

jlcarf
Invité n'ayant pas de compte PHPfrance

22 juil. 2008, 07:50

Bonjour,

après plusieurs recherches, je n'arrive pas à trouver la réponse ...

j'ai un script qui fait appel à un fichier XML où il y a les données,
Ce fichier de données contient des caractères &, qui doivent absolument rester en &

Mais je suis passé de PHP4 à PHP5 et cela me donne désormais l'erreur suivante :

XPath error in XPath.class.php:1727 In importFromString(): XML error in given file donnees.xml' on line 32 column 15. Reason:EntityRef: expecting ';'
XPath error in XPath.class.php:5813 The supplied xPath '/Module[@nom='']/nb_fichiers' does not *uniquely* describe a node in the xml document.Not unique xpath-query, matched 0-times.

L'entete du xml est <?xml version="1.0" encoding="ISO-8859-1"?>

Auriez-vous une idée sur la manipulation que je dois effectuer dans ce XML pour qu'il soit codé correctement ?

Merci à tous pour votre aide !

JL

ViPHP
ViPHP | 2287 Messages

22 juil. 2008, 11:06

Bonjour,
Ce fichier de données contient des caractères &, qui doivent absolument rester en &
Ton problème est là. Pour qu'un fichier XML soit valide, il faut que les & soient convertis en & . Ce n'est pas optionnel. (Tu peux bien sûr les reconvertir à la lecture).

La seule façon de passer outre serait d'inclure tes blocs de données dans des sections <![CDATA[ ce qui n'est pas plus propre à mon avis. Au cas où tu choisirais ce chemin, voici à quoi ça ressemble :

Code : Tout sélectionner

<item> <![CDATA[ Le beurre & l'argent du beurre < l'âge de la soeur du capitaine ]]> </item>
if(!@work()){ Nespresso(); } else { what(); }
______________________________

jlcarf
Invité n'ayant pas de compte PHPfrance

23 juil. 2008, 07:37

Bonjour,
Ce fichier de données contient des caractères &, qui doivent absolument rester en &
Ton problème est là. Pour qu'un fichier XML soit valide, il faut que les & soient convertis en & . Ce n'est pas optionnel. (Tu peux bien sûr les reconvertir à la lecture).

La seule façon de passer outre serait d'inclure tes blocs de données dans des sections <![CDATA[ ce qui n'est pas plus propre à mon avis. Au cas où tu choisirais ce chemin, voici à quoi ça ressemble :

Code : Tout sélectionner

<item> <![CDATA[ Le beurre & l'argent du beurre < l'âge de la soeur du capitaine ]]> </item>
Bonjour Calimero

Merci pour l'info, j'ai modifié les données en ajoutant CDATA,
Suite à cela me reste encore une erreur qui indique :

XPath error in XPath.class.php:5813 The supplied xPath '/Module[@nom='']/nb_fichiers' does not *uniquely* describe a node in the xml document.Not unique xpath-query, matched 0-times.

Une idée ?

JL