IRC logs of #tryton-fr for Monday, 2011-08-08

chat.freenode.net #tryton-fr log beginning Mon Aug 8 00:00:03 CEST 2011
2011-08-08 05:02 -!- yangoon1(~mathiasb@p54B4E209.dip.t-dialin.net) has joined #tryton-fr
2011-08-08 09:19 -!- cedk(~ced@gentoo/developer/cedk) has joined #tryton-fr
2011-08-08 09:38 -!- nicoe(~nicoe@ced.homedns.org) has joined #tryton-fr
2011-08-08 09:57 -!- bechamel(~user@cismwks02-virtual1.cism.ucl.ac.be) has joined #tryton-fr
2011-08-08 16:23 -!- sebastien__(~sebastien@ip-213-49-124-130.dsl.scarlet.be) has joined #tryton-fr
2011-08-08 17:06 <sebastien__> A partir du fodt je veux avoir le contenu du content et du styles de l'odt pour les traiter avec la fonction de parsing de l'opendocument.py Je dois donc me retrouver avec la même chose.
2011-08-08 17:06 <sebastien__> Mais avec lxml, ceci meme met une erreur : content = etree.Element("office:document-content")
2011-08-08 17:07 <cedk> sebastien__: je comprend pas
2011-08-08 17:07 <sebastien__> dans le fichier odt
2011-08-08 17:07 <sebastien__> j'ai les 4 fichiers
2011-08-08 17:07 <sebastien__> settings
2011-08-08 17:07 <sebastien__> meta
2011-08-08 17:07 <sebastien__> content
2011-08-08 17:07 <sebastien__> styles
2011-08-08 17:07 <sebastien__> la fonction de parsing que vous utilisez
2011-08-08 17:08 <sebastien__> dans opendocument.py utilise le styles et le content
2011-08-08 17:08 <sebastien__> le fodt contient ceux-ci mais en désordre
2011-08-08 17:08 <cedk> ça veut dire quoi en désordre?
2011-08-08 17:08 <sebastien__> avec lxml j'essaye de recréer un arbe qui contiendrait le contenu du content et du styles de l'odt
2011-08-08 17:09 <sebastien__> ca veux dire que le content de l'odt, il a plusieurs noeuds dont automatic-styles, master-styles, font-face-decls, ...
2011-08-08 17:10 <sebastien__> et ils sont présent tels quels dans le fodt
2011-08-08 17:10 <sebastien__> il faut donc que je les rassembles sous un noeud père
2011-08-08 17:10 <sebastien__> office:document-content
2011-08-08 17:10 <sebastien__> car c'est comme ça qu'est nommé le noeud père du content.xml de l'odt
2011-08-08 17:10 <cedk> oui
2011-08-08 17:11 <cedk> quel est le problem?
2011-08-08 17:13 <sebastien__> avec la lib lxml
2011-08-08 17:13 <sebastien__> content = etree.Element("office:document-content")
2011-08-08 17:14 <sebastien__> par exemple permet de créer un noeud donc ("...") le contenu de la parenthèse est le nom
2011-08-08 17:14 <nicoe> Tu peux poster ton fichier fodt quelque part ?
2011-08-08 17:14 <cedk> sebastien__: tu peux montrer le code ?
2011-08-08 17:14 <cedk> sebastien__: je pense qu'il manque le ns
2011-08-08 17:15 <sebastien__> le fichier fodt c'est votre test.odt que j'ai sauvé en .fodt a partir de liboffice
2011-08-08 17:15 <sebastien__> j'ai pas grand chose en code, j'essaye de maitriser lxml avec des tests la...
2011-08-08 17:16 <sebastien__> on peut envoyer un fichier ici ?
2011-08-08 17:16 <nicoe> poste tout de même ton code sur un pastebin, ça permettra de voir plus clairement ce que tu veux faire
2011-08-08 17:16 <nicoe> pastebin.ca ou un truc du genre
2011-08-08 17:16 <cedk> sebastien__: fait une recherche dans opendocument.py sur EtreeElement
2011-08-08 17:17 <sebastien__> ok
2011-08-08 17:17 <cedk> sebastien__: tu verra qu'il faut passer un nsmap
2011-08-08 17:17 <cedk> sebastien__: tu a interet à éditer directement dans relatorio pour te faciliter la vie
2011-08-08 17:17 <sebastien__> http://pastebin.com/0RzGH2An
2011-08-08 17:18 <sebastien__> Le nom des noeuds quand je les print (voir pastebin), il donne ceci {urn:oasis:names:tc:opendocument:xmlns:office:1.0}automatic-styles par exemple
2011-08-08 17:19 <sebastien__> pq me donne-t-il à chaque fois ceci {..}
2011-08-08 17:20 <cedk> sebastien__: c'est le namespace du tag
2011-08-08 17:20 <nicoe> Dans xml, tu pourrais avoir deux tags qui ont le même nom et deux namespace différent
2011-08-08 17:20 <nicoe> il faut donc renseigner le namespace
2011-08-08 17:22 <cedk> et ce formatage est spécifique à lxml
2011-08-08 17:28 <sebastien__> et donc le nsmap permet de définir le namespace
2011-08-08 17:29 <cedk> sebastien__: oui
2011-08-08 17:30 <nicoe> enfin **les** namespaces car il y en souvent plusieurs par document
2011-08-08 17:32 <sebastien__> ok
2011-08-08 17:32 <sebastien__> comme dans celui-ci qui correspond au content.xml du test.odt
2011-08-08 17:32 <sebastien__> http://pastebin.com/KnjeH5Ss
2011-08-08 17:33 <sebastien__> je dois reprendre donc tous ceux-ci pour le namespace du nouveau content que je fais à partir de l'odt
2011-08-08 17:33 <sebastien__> ?
2011-08-08 17:33 <sebastien__> du fodt * pardon
2011-08-08 17:36 <nicoe> Normallement, lxml sera malin et le fera pour toi
2011-08-08 17:37 <nicoe> Dans ton code python tu trouves les meta/scripts/etc via leur ordre : ce n'est pas une bonne idée. L'ordre pourrait changer.
2011-08-08 18:03 <sebastien__> lxml n'aura pas tout ceux qui seront présent dans le content ..
2011-08-08 18:04 <sebastien__> si je prends les namespaces du fichier content.xml de l'odt.. et les namespace des noeuds du fodt... j'ai pas les mêmes...
2011-08-08 18:05 <nicoe> Ben forcément tu en as plus dans le fodt que dans le content.xml puisque l'un est le sous-ensemble de l'autre
2011-08-08 18:05 <nicoe> (ou alors j'ai pas compris ton problème)
2011-08-08 18:14 <sebastien__> dans <office:document-content> office c'est quoi ? ca correspond à quoi ?
2011-08-08 18:14 <cedk> sebastien__: ben c'est un alias pour un namespace
2011-08-08 18:15 <sebastien__> et il y a pas de tag alors ?
2011-08-08 18:15 <cedk> sebastien__: office c'est le namespace et document-content c'est le nom du tag
2011-08-08 18:16 <nicoe> Dans ton second exemple, dans la toute première balise tu as des xmlns:XXXX="ZZZZZZ" et le XXX c'est le nom court du namespace (qui est ZZZZ), nom qui sera utilisé par la suite
2011-08-08 18:17 <sebastien__> et dans le namespace office il y a toujours le nom du tag ?
2011-08-08 18:17 <sebastien__> ou j'ai rien compris ?
2011-08-08 18:17 <sebastien__> et si c'est bien ça.. faut-il le préciser ?
2011-08-08 18:18 <nicoe> Un tag xml a toujours un namespace mais parfois on le mets pas quand il n'y en a qu'un de définit
2011-08-08 18:18 <cedk> https://secure.wikimedia.org/wikipedia/en/wiki/XML_Namespace
2011-08-08 18:19 <nicoe> (pense à xhtml)
2011-08-08 18:21 <nicoe> Un tag xml c'est donc: <namespace>:<tagname>
2011-08-08 18:21 <nicoe> office:document-content ça veut dire que c'est le tag document-content du namespace dont le nom court est office
2011-08-08 18:22 <sebastien__> ok
2011-08-08 18:22 <sebastien__> et le nom de mon noeud c'est quoi ?
2011-08-08 18:23 <sebastien__> content = etree.Element(_tag, attrib=None, nsmap=None, **_extra) Voila en gros ce qu'il faut pour déclarer un noeud... le _tag, il se retrouve ou ?
2011-08-08 18:23 <cedk> sebastien__: ben c'est document-content
2011-08-08 18:23 <sebastien__> ok
2011-08-08 18:23 <nicoe> Plutôt {office}document-content
2011-08-08 18:23 <sebastien__> merci
2011-08-08 18:24 <nicoe> avec un dictionnaire {'office': 'http://dfhsdkjfhkfjhs'} pour nsmap
2011-08-08 18:53 <sebastien__> J'ai bien compris le principe de nsmap et namespace tagname
2011-08-08 18:53 <sebastien__> etc
2011-08-08 18:53 <sebastien__> mais quand je définis un noeud avec lxml
2011-08-08 18:53 <sebastien__> Je fais ceci par exemple content = etree.Element("document-content", nsmap = NSMAP)
2011-08-08 18:54 <sebastien__> et j'ai <document-content puis les namespaces >Or le nom des balises dans les fichier fodt et odt sont :
2011-08-08 18:54 <sebastien__> <office:document-content puis les namespace>
2011-08-08 18:56 <cedk> sebastien__: comprend pas, docuement-content est dans ls ns office
2011-08-08 18:57 <nicoe> sebastien__: Si tu veux tu pourrais venir à Lg pour qu'on t'aide en live
2011-08-08 18:57 <nicoe> Je pense que ça pourrait fortement simplifier les choses
2011-08-08 18:57 <sebastien__> et la "balise" elle a pas un tag général ?
2011-08-08 18:58 <sebastien__> .Element(_tag, attrib=None, nsmap=None, **_extra)
2011-08-08 18:58 <sebastien__> le _tag ???
2011-08-08 18:58 <cedk> sebastien__: ben document-content
2011-08-08 18:59 <sebastien__> alors j'aurais une balise <document-content .... et les namespaces>
2011-08-08 18:59 <sebastien__> j'aurais pas <office:document-content et les namespaces>
2011-08-08 18:59 <sebastien__> dans les fichiers odt et fodt toutes les balises commencent par <office:...>
2011-08-08 19:00 <sebastien__> cela voudrait dire qu'il n'y a que des namespaces sans tag général correspondant au "_tag" de .Element(_tag, attrib=None, nsmap=None, **_extra)
2011-08-08 19:00 <sebastien__> ????
2011-08-08 19:00 <nicoe> sebastien__: http://hg.openhex.org/hgwebdir.cgi/relatorio/file/53e1e499527d/relatorio/templates/opendocument.py#l426
2011-08-08 19:02 <sebastien__> je vais m'exprimer correctement c'est sans doute ça le problème
2011-08-08 19:02 <sebastien__> Voici le noeud principale du content.xml de l'odt <office:document-content office:version="1.2">
2011-08-08 19:03 <sebastien__> Voici le noeud principal du test.fodt <office:document xmlns:..., ....>
2011-08-08 19:04 <sebastien__> leur "_tag" c'est donc document-content pour le premier et document pour le deuxième
2011-08-08 19:04 <sebastien__> lorsque je fais mon instanciation
2011-08-08 19:05 <sebastien__> que dois-je mettre comme nom de "_tag" ? car ceci: content = etree.Element("document-content", nsmap=NSMAP)
2011-08-08 19:05 <sebastien__> me donne comme nom de "_tag" document-content
2011-08-08 19:06 <sebastien__> et lorsque je l'affiche... j'ai
2011-08-08 19:06 <sebastien__> <document-content les namespaces>
2011-08-08 19:06 <nicoe> sebastien__: regarde le lien que je t'ai donné il y a 6 minutes
2011-08-08 19:06 <nicoe> Note bien que si tu as un namespace par défaut il est possible qu'il n'apparaisse pas
2011-08-08 19:06 <nicoe> Franchement, à ta place j'essaierai de venir un jour de la semaine
2011-08-08 19:07 <nicoe> Là je dois y alle, A+
2011-08-08 19:07 <sebastien__> A+
2011-08-08 19:07 <sebastien__> je vois bien le lien oui ...
2011-08-08 19:08 <sebastien__> C'est le nom du tag qui est particulier c'est ça ?
2011-08-08 19:08 <sebastien__> ok
2011-08-08 19:08 <sebastien__> j'ai peut-être bien compris
2011-08-08 19:11 <sebastien__> Avec ceci :
2011-08-08 19:11 <sebastien__> content = etree.Element('{%s}%s' % ("Office","document-content"), nsmap = NSMAP)
2011-08-08 19:11 <sebastien__> j'obtiens
2011-08-08 19:12 <sebastien__> <ns0:document-content xmlns: ...>
2011-08-08 19:13 <cedk> pq tu met "Office" et pas office
2011-08-08 19:17 <sebastien__> distraction
2011-08-08 19:17 <sebastien__> mais ca me donne le même résultat avec office
2011-08-08 21:50 -!- bechamel(~user@host-85-201-144-79.brutele.be) has joined #tryton-fr

Generated by irclog2html.py 2.17.3 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!