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

  FORUM HardWare.fr
  Programmation
  Perl

  parser du XML dont les valeurs sont dans les balises

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

parser du XML dont les valeurs sont dans les balises

n°992154
jokaritaff
Posté le 24-02-2005 à 11:20:59  profilanswer
 

j'ai une page Perl qui recoit un message en XML  
pour parser ce message XML je compte utiliser le module XML::Simple  
 
le "probleme" de XML::Simple, dapres les tutos que j'ai vu, c'est qu'il extrait les données entre 1 balise ouvrante et fermante :  
 
<balise ouvrante>donnée</balise fermante>  
 
or le message XML que je dois parser est pas a priori (je suis expert en XML pour le certifier) normalisé car les données sont dans les balises :  
 
fichier.xml:
 

Code :
  1. <balise_enveloppante>
  2. <balise_contenant_les_attributs attribut1="donnéeX" attribut2="donnéesY">
  3. </balise_enveloppante>


 
et moi je voudré extraire donnéeX et donneeY.
est ce possible avec le code suivant:
 
 

Code :
  1. #!/usr/bin/perl
  2. # utiliser le module
  3. use XML::Simple;
  4. # créer un objet
  5. $xml = new XML::Simple;
  6. # lire le fichier XML
  7. $data = $xml->XMLin("fichier.xml" );
  8. # accéder aux données XML
  9. print "la donnéeX est $data->{balise_contenant_les_attributs.attribut1}";


Message édité par jokaritaff le 24-02-2005 à 12:05:01
mood
Publicité
Posté le 24-02-2005 à 11:20:59  profilanswer
 

n°992230
couak
Posté le 24-02-2005 à 12:09:41  profilanswer
 

normalement tu devrais avoir des clés dans ton hash nommée "attribut1" '(avec la valeur donnéeX) et "attribut2" (avec la valeur donnéeY) pour les attributs
 
d'après mes souvenirs tu peux également jouer avec des options comme ContentKey pour changer la structure de données (avoir une clé "content" pour le contenu de la balise, les attributs étant des clés du hash)
 
hmmmm est-ce que j'ai été clair ? :)

n°992249
jokaritaff
Posté le 24-02-2005 à 12:22:17  profilanswer
 

euu ben en fait j'ai attaqué cette histoire de XML en debut de semaine. donc on peut vraiment pas dire que je connaisse bien XML.
 
tout simplement il faudrait, avec les éléments de code que j'ai donné, que j'arrive a extraire les donnéeX et donneeY du message XML.
 
personnellement j'aimerais bien normaliser les message XML, mais certains messages que je dois parser viennent de differentes API dont je peux pas modifier le code.

n°992348
couak
Posté le 24-02-2005 à 13:37:16  profilanswer
 

ca risque d'être compliqué en marchant à tatillons :/ je te conseillerais de chopper la DTD des applis dont tu recois les messages, et qu'ensuite tu avises pour le traitement des XML (comment les représenter dans le hash en jouant avec les options de XML Simple, pour faire un minimum de code propre)

n°992399
jokaritaff
Posté le 24-02-2005 à 13:58:58  profilanswer
 

je vois theoriquement ce que tu veux dire
c a dire faire correspondre les attributs avec ce a quoi ils servent dans le document de definition du fichier xml (le DTD)


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

  parser du XML dont les valeurs sont dans les balises

 

Sujets relatifs
Supprimer toutes balises HTMLconnexion par socket via XML
parser un header imapConcatener diff valeurs
Insérer des données dans un fichier XML[SAX] Parser un flux reseau a la volee
Quelle alternative pour les balises <Embed> incompatible xhtml ?parser RDF en Java
Afficher les balises HTML avec PHP[HTML] Avoir deux valeurs dans les <option>
Plus de sujets relatifs à : parser du XML dont les valeurs sont dans les balises


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