Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1450 connectés 

  FORUM HardWare.fr
  Programmation
  Perl

  Problème de symbole dans la bilbiothèque XML::Simple

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème de symbole dans la bilbiothèque XML::Simple

n°1369330
neo00neo
Posté le 18-05-2006 à 08:52:15  profilanswer
 

Bonjour,
voilà, je parse un fichier qui est de telle façon :
 
<filtre>
 <elementun attribut="attribut1" op="<" valeur="999" />
</filtre>
 
Là, il me génère une erreur quand je veux lancer mon fichier.
Par contre si je modifie mon fichier et que je mets ça :
<filtre>
 <elementun attribut="attribut1" op=">" valeur="999" />
</filtre>
 
Là ça marche.
Y aurait il une option? Ou est ce vraiment interdit de mettre le symbole "<"? Merci.

mood
Publicité
Posté le 18-05-2006 à 08:52:15  profilanswer
 

n°1369347
pospos
Posté le 18-05-2006 à 09:27:17  profilanswer
 

c'est interdit.
il faut le remplacer par &lt;
 
tu trouvera plusieurs fonction d'achappement pour XML un peu partout sur cpan.
La regle est de remplacer & par &amp; (en premier), puis < par &lt;
 
puis si c'est un attribut entre double quote, remplacer " par &quot; (ou ' par &apos; si tu est en simple quote)

n°1369359
neo00neo
Posté le 18-05-2006 à 09:36:07  profilanswer
 

D'accord, merci,
en fait le truc c'est que c'est l'utilisateur qui écrit ce genre de fichier xml. Donc lui il peut mettre "<"...
Ce que j'avais pensé c'est de modifier le nom de mon fichier, au lieu de .xml, mettre .txt, puis l'ouvrir et modifier le caractère. Seulement le "rename" ne marche pas.
N'auriez vous pas une solution de secours, pour que cette modification soit modifiée automatiquement?

n°1369362
pospos
Posté le 18-05-2006 à 09:38:26  profilanswer
 

l'ouvrire à la main dans un editeur tu veux dire?

n°1369371
neo00neo
Posté le 18-05-2006 à 09:56:06  profilanswer
 

Non, genre faire un :
rename...
open...
close...
rename...
 
Mais ça n'a pas l'air de marcher...

n°1369415
neo00neo
Posté le 18-05-2006 à 10:32:25  profilanswer
 

Bon je touche au but...
Pour afficher mon fichier je fais un open :
<filtre>
 <elementun attribut="attribut1" op=">" valeur="999" />
</filtre>  
 
 
Seulement il n'y a pas d'erreur, mais je n'afifche aucune ligne...
Par contre si je modifie mon fichier XML comme ceci :
aaa<filtre>
 <elementun attribut="attribut1" op=">" valeur="999" />
</filtre>
 
Il m'affiche aaa pour la ligne... Donc il ne prend en compte ce qu'il y a dans les balises, y a til un moyen de contourner ce problème? Merci.

n°1369433
pospos
Posté le 18-05-2006 à 10:44:41  profilanswer
 

je ne comprend pas trop ce que tu veux faire?
ton open c'estun open perl? ou un open d'une librairie XML ?
Ton fichier XML n'est pas valide en tant que XML, mais rien ne t'empeche de l'ouvrire avec une editeur (non XML) ou un script perl et de le retroucher sans avoir besoin de le renommer.
Par contre je te previent que repearer dans un script ce genre d'erreur par des bidouilles genre regexp est plus que risqué!
Tu ne pourrais pas t'arranger en amont pour que les utilisateur passent par un formulaire (et donc un script) pour remplir le XML?

n°1369435
neo00neo
Posté le 18-05-2006 à 10:48:58  profilanswer
 

En fait, ce sont les utilisateurs qui font le fichier XML, or eux ils ont besoin de faire avec des symboles "<". Donc, de mon côté, je récupère le fichier, or ce symbole est mal interprété par XML::Simple.
Donc je voulais faire un :
open (FIC, $fichier) or die "ne trouve pas fav";
 
Puis regarder ce que le fichier contient, or il ne m'affiche rien du tout, je voulais qu'il m'affiche le contenu de mon fichier XML, c'est à dire les balises. Comme ça j'aurais pu modifier le fichier dans un script, et l'utilisateur aurait rien à faire. Tout serait automatique.

n°1369627
pospos
Posté le 18-05-2006 à 14:02:05  profilanswer
 

Le XML n'est pas fait pour els utilisateurs! C'est fait pour les machines!
Faire faire du XML directement à des gens (surtout non informaticiens) c'est un connerie!
Ou alors il faut au moins qu'ils utilisent un editeur XML genre XML spy.
 
Pour l'ouvrire avec perl tu ne devrait normalement pas avoir de probleme, je ne vois pas ce qui peut merder. montre ton code.
Mais de toutes facon ca ne change pas grand chose: si tu veux le modifier dans ton script tu cours à la catastrophe! (regexps foireuses et bidouillage...), et apres ca sera de ta faute! Alors exige des fichiers valides en entrée!


Message édité par pospos le 18-05-2006 à 14:03:02
n°1370263
neo00neo
Posté le 19-05-2006 à 09:08:28  profilanswer
 

Oui, mais bon en même temps ce sont des exigences le XML. Les gens qui le feraient sont quand même informaticiens.
 
Mais bon, j'ai réussi à faire comme je voulais, c'est à dire modifier directement dans le fichier. Mais bon, après une discution avec le supérieur, il va y avoi modification dans les fichiers XML pour enlever le "<".
 
Merci de ton aide.

mood
Publicité
Posté le 19-05-2006 à 09:08:28  profilanswer
 

n°1375405
pospos
Posté le 26-05-2006 à 11:31:17  profilanswer
 

c'est du parsing à la libXML et pas XML::Simple, mais je le note ici pour reference:
http://search.cpan.org/~miyagawa/XML-Liberal/


Message édité par pospos le 26-05-2006 à 11:36:26

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Perl

  Problème de symbole dans la bilbiothèque XML::Simple

 

Sujets relatifs
probleme de recuperation de champs option[XML & BCB 6] Problème installation XMLPartner
[MFC] Problème Port SocketProblème forum phpbb
Problème de validation automatique de forumlaire avec Opera [RESOLU]Probleme de session et tableau
Problème de librairie .aProblème de Serialization
Problème avec MsgBox 
Plus de sujets relatifs à : Problème de symbole dans la bilbiothèque XML::Simple


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR