parser du XML dont les valeurs sont dans les balises - Perl - Programmation
Marsh Posté le 24-02-2005 à 12:09:41
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 ?
Marsh Posté le 24-02-2005 à 12:22:17
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.
Marsh Posté le 24-02-2005 à 13:37:16
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)
Marsh Posté le 24-02-2005 à 13:58:58
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)
Marsh Posté le 24-02-2005 à 11:20:59
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:
et moi je voudré extraire donnéeX et donneeY.
est ce possible avec le code suivant:
Message édité par jokaritaff le 24-02-2005 à 12:05:01