OVH Cloud OVH Cloud

python et XML

3 réponses
Avatar
Da SILVA David
Bonjour à tous,

J'utilise un format XML pour sauvegarder les résultats de calculs en
fonctions de différents paramètres.

Un premier problème que je rencontre est celui de trouver un noeud en
fonction de plusieurs paramètres, pour info, actuellement j'utilise le
module libxml2

typiquement mon fichier se présente sous la forme :

<objet>
<carac>
<bbvolume>27.0</bbvolume>
...
<contraction>3</contraction>
</carac>
<comput>
<result>
<param>
<depth>3</depth>
<divsteps>[3, 3]</divsteps>
<shift>[0.0, 0.0, 0.0]</shift>
</param>
<data>
<deltameth>2.2618595071429151</deltameth>
<scale>[ 1. 3. 9. 27.]</scale>
</data>
</result>
<result>
<param>
<depth>3</depth>
<divsteps>[4, 3]</divsteps>
<shift>[10.0, 0.0, 0.0]</shift>
</param>
<data>
<deltameth>2.274245434050076</deltameth>
<scale>[ 1. 3. 9. 27.]</scale>
</data>
</result>
</comput>
</objet>

et je voudrais pouvoir trouver un noeud <result> en fonction d'un
triplet de valeur à savoir les <param>

Par ailleurs je souhaiterais transformer ces fichiers XML, genre avec
XSLT pour faire un fichier html par exemple,le tout en python.
J'ai du mal à trouver de la doc correct sur le web avec une bonne API
(francais ou anglais, peu importe), j'ai bien vu pyxml, mais ou je suis
un peu dur à la compréhension ou leur doc est bof ?

les sugestions et liens sont les bienvenus, merci d'avance

DDS

3 réponses

Avatar
Frédéric Momméja
Bonjour,

Da SILVA David écrivait le 12/04/05 18:01 :
J'utilise un format XML pour sauvegarder les résultats de calculs en
fonctions de différents paramètres.

Un premier problème que je rencontre est celui de trouver un noeud en
fonction de plusieurs paramètres, pour info, actuellement j'utilise l e
module libxml2

[SNIP]


Par ailleurs je souhaiterais transformer ces fichiers XML, genre avec
XSLT pour faire un fichier html par exemple,le tout en python.
J'ai du mal à trouver de la doc correct sur le web avec une bonne API
(francais ou anglais, peu importe), j'ai bien vu pyxml, mais ou je suis
un peu dur à la compréhension ou leur doc est bof ?

les sugestions et liens sont les bienvenus, merci d'avance


Je ne suis pas du tout un spécialiste mais j'ai utilisé une ou deux f ois
PyRXP (ReportLab) et l'ai trouvé performant et relativement simple à
utiliser.

<http://www.reportlab.org/pyrxp.html>

--
Frédéric Momméja

Avatar
Jerome
Bonjour

Da SILVA David wrote:
Bonjour à tous,

J'utilise un format XML pour sauvegarder les résultats de calculs en
fonctions de différents paramètres.

Un premier problème que je rencontre est celui de trouver un noeud en
fonction de plusieurs paramètres, pour info, actuellement j'utilise le
module libxml2


Je mettrais les paramètres comme attributs de la balise result
personnellement, c'est plus simple à gérer.


et je voudrais pouvoir trouver un noeud <result> en fonction d'un
triplet de valeur à savoir les <param>


XPATH est ton ami alors

import libxml2

doc = libxml2.parseFile('toto.xml')
root = doc.getRootElement()

xpath_att = '//result[param/depth="4" and param/divsteps="[3, 3]"]'
xpath_tag = '//result[@depth="4" and @divsteps="[3, 3]"]'

nodes = root.xpathEval(xpath_tag)
doc.freeDoc()

Je l'ai écrit pour un couple de 2 valeurs pour que ça reste lisible sur
le newsgroup...


Par ailleurs je souhaiterais transformer ces fichiers XML, genre avec
XSLT pour faire un fichier html par exemple,le tout en python.


import libxml2, libxslt

styledoc = libxml2.parseFile("toto.xsl")
style = libxslt.parseStylesheetDoc(styledoc)
doc = libxml2.parseFile("toto.xml")
result = style.applyStylesheet(doc, None)
style.saveResultToFilename("res.html", result, 0)
style.freeStylesheet()
doc.freeDoc()
result.freeDoc()

J'ai du mal à trouver de la doc correct sur le web avec une bonne API
(francais ou anglais, peu importe), j'ai bien vu pyxml, mais ou je suis
un peu dur à la compréhension ou leur doc est bof ?


libxml2 est une très bonne api à mon avis. Elle est complète et
performante. Niveau doc y'a encore des progrès à faire mais sur le site
d'xmlsoft on arrive à se dépatouiller.


les sugestions et liens sont les bienvenus, merci d'avance


Si tu ne connais pas, pour les technos xml je te conseille ce site qui
est ma référence :

http://www.zvon.org

Jérôme

Avatar
Da SILVA David
Jerome wrote:
Bonjour

Da SILVA David wrote:

Bonjour à tous,

J'utilise un format XML pour sauvegarder les résultats de calculs en
fonctions de différents paramètres.

Un premier problème que je rencontre est celui de trouver un noeud en
fonction de plusieurs paramètres, pour info, actuellement j'utilise le
module libxml2



Je mettrais les paramètres comme attributs de la balise result
personnellement, c'est plus simple à gérer.


et je voudrais pouvoir trouver un noeud <result> en fonction d'un
triplet de valeur à savoir les <param>



XPATH est ton ami alors

import libxml2

doc = libxml2.parseFile('toto.xml')
root = doc.getRootElement()

xpath_att = '//result[param/depth="4" and param/divsteps="[3, 3]"]'
xpath_tag = '//result[@depth="4" and @divsteps="[3, 3]"]'

nodes = root.xpathEval(xpath_tag)
doc.freeDoc()

Je l'ai écrit pour un couple de 2 valeurs pour que ça reste lisible sur
le newsgroup...


Par ailleurs je souhaiterais transformer ces fichiers XML, genre avec
XSLT pour faire un fichier html par exemple,le tout en python.



import libxml2, libxslt

styledoc = libxml2.parseFile("toto.xsl")
style = libxslt.parseStylesheetDoc(styledoc)
doc = libxml2.parseFile("toto.xml")
result = style.applyStylesheet(doc, None)
style.saveResultToFilename("res.html", result, 0)
style.freeStylesheet()
doc.freeDoc()
result.freeDoc()

J'ai du mal à trouver de la doc correct sur le web avec une bonne API
(francais ou anglais, peu importe), j'ai bien vu pyxml, mais ou je
suis un peu dur à la compréhension ou leur doc est bof ?



libxml2 est une très bonne api à mon avis. Elle est complète et
performante. Niveau doc y'a encore des progrès à faire mais sur le site
d'xmlsoft on arrive à se dépatouiller.


les sugestions et liens sont les bienvenus, merci d'avance



Si tu ne connais pas, pour les technos xml je te conseille ce site qui
est ma référence :

http://www.zvon.org

Jérôme


Merci beaucoup pour il semble que ca colle parfaitement avec ce que je
souhaitais, je m'y met de suite :)

A+