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
-!- yangoon1(~mathiasb@p54B4E209.dip.t-dialin.net) has joined #tryton-fr05:02
-!- cedk(~ced@gentoo/developer/cedk) has joined #tryton-fr09:19
-!- nicoe(~nicoe@ced.homedns.org) has joined #tryton-fr09:38
-!- bechamel(~user@cismwks02-virtual1.cism.ucl.ac.be) has joined #tryton-fr09:57
-!- sebastien__(~sebastien@ip-213-49-124-130.dsl.scarlet.be) has joined #tryton-fr16:23
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.17:06
sebastien__Mais avec lxml, ceci meme met une erreur : content = etree.Element("office:document-content")17:06
cedksebastien__: je comprend pas17:07
sebastien__dans le fichier odt17:07
sebastien__j'ai les 4 fichiers17:07
sebastien__settings17:07
sebastien__meta17:07
sebastien__content17:07
sebastien__styles17:07
sebastien__la fonction de parsing que vous utilisez17:07
sebastien__dans opendocument.py utilise le styles et le content17:08
sebastien__le fodt contient ceux-ci mais en désordre17:08
cedkça veut dire quoi en désordre?17:08
sebastien__avec lxml j'essaye de recréer un arbe qui contiendrait le contenu du content et du styles de l'odt17:08
sebastien__ca veux dire que le content de l'odt, il a plusieurs noeuds dont automatic-styles, master-styles, font-face-decls, ...17:09
sebastien__et ils sont présent tels quels dans le fodt17:10
sebastien__il faut donc que je les rassembles sous un noeud père17:10
sebastien__office:document-content17:10
sebastien__car c'est comme ça qu'est nommé le noeud père du content.xml de l'odt17:10
cedkoui17:10
cedkquel est le problem?17:11
sebastien__avec la lib lxml17:13
sebastien__content = etree.Element("office:document-content")17:13
sebastien__par exemple permet de créer un noeud donc ("...") le contenu de la parenthèse est le nom17:14
nicoeTu peux poster ton fichier fodt quelque part ?17:14
cedksebastien__: tu peux montrer le code ?17:14
cedksebastien__: je pense qu'il manque le ns17:14
sebastien__le fichier fodt c'est votre test.odt que j'ai sauvé en .fodt a partir de liboffice17:15
sebastien__j'ai pas grand chose en code, j'essaye de maitriser lxml avec des tests la...17:15
sebastien__on peut envoyer un fichier ici ?17:16
nicoeposte tout de même ton code sur un pastebin, ça permettra de voir plus clairement ce que tu veux faire17:16
nicoepastebin.ca ou un truc du genre17:16
cedksebastien__: fait une recherche dans opendocument.py sur EtreeElement17:16
sebastien__ok17:17
cedksebastien__: tu verra qu'il faut passer un nsmap17:17
cedksebastien__: tu a interet à éditer directement dans relatorio pour te faciliter la vie17:17
sebastien__http://pastebin.com/0RzGH2An17:17
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 exemple17:18
sebastien__pq me donne-t-il à chaque fois ceci {..}17:19
cedksebastien__: c'est le namespace du tag17:20
nicoeDans xml, tu pourrais avoir deux tags qui ont le même nom et deux namespace différent17:20
nicoeil faut donc renseigner le namespace17:20
cedket ce formatage est spécifique à lxml17:22
sebastien__et donc le nsmap permet de définir le namespace17:28
cedksebastien__: oui17:29
nicoeenfin **les** namespaces car il y en souvent plusieurs par document17:30
sebastien__ok17:32
sebastien__comme dans celui-ci qui correspond au content.xml du test.odt17:32
sebastien__http://pastebin.com/KnjeH5Ss17:32
sebastien__je dois reprendre donc tous ceux-ci pour le namespace du nouveau content que je fais à partir de l'odt17:33
sebastien__?17:33
sebastien__du fodt * pardon17:33
nicoeNormallement, lxml sera malin et le fera pour toi17:36
nicoeDans ton code python tu trouves les meta/scripts/etc via leur ordre : ce n'est pas une bonne idée. L'ordre pourrait changer.17:37
sebastien__lxml n'aura pas tout ceux qui seront présent dans le content ..18:03
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...18:04
nicoeBen forcément tu en as plus dans le fodt que dans le content.xml puisque l'un est le sous-ensemble de l'autre18:05
nicoe(ou alors j'ai pas compris ton problème)18:05
sebastien__dans <office:document-content> office c'est quoi ? ca correspond à quoi ?18:14
cedksebastien__: ben c'est un alias pour un namespace18:14
sebastien__et il y a pas de tag alors ?18:15
cedksebastien__: office c'est le namespace et document-content c'est le nom du tag18:15
nicoeDans 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 suite18:16
sebastien__et dans le namespace office il y a toujours le nom du tag ?18:17
sebastien__ou j'ai rien compris ?18:17
sebastien__et si c'est bien ça.. faut-il le préciser ?18:17
nicoeUn tag xml a toujours un namespace mais parfois on le mets pas quand il n'y en a qu'un de définit18:18
cedkhttps://secure.wikimedia.org/wikipedia/en/wiki/XML_Namespace18:18
nicoe(pense à xhtml)18:19
nicoeUn tag xml c'est donc: <namespace>:<tagname>18:21
nicoeoffice:document-content ça veut dire que c'est le tag document-content du namespace dont le nom court est office18:21
sebastien__ok18:22
sebastien__et le nom de mon noeud c'est quoi ?18:22
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 ?18:23
cedksebastien__: ben c'est document-content18:23
sebastien__ok18:23
nicoePlutôt {office}document-content18:23
sebastien__merci18:23
nicoeavec un dictionnaire {'office': 'http://dfhsdkjfhkfjhs'} pour nsmap18:24
sebastien__J'ai bien compris le principe de nsmap et namespace tagname18:53
sebastien__etc18:53
sebastien__mais quand je définis un noeud avec lxml18:53
sebastien__Je fais ceci par exemple content = etree.Element("document-content", nsmap = NSMAP)18:53
sebastien__et j'ai <document-content puis les namespaces >Or le nom des balises dans les fichier fodt et odt sont :18:54
sebastien__<office:document-content puis les namespace>18:54
cedksebastien__: comprend pas, docuement-content est dans ls ns office18:56
nicoesebastien__: Si tu veux tu pourrais venir à Lg pour qu'on t'aide en live18:57
nicoeJe pense que ça pourrait fortement simplifier les choses18:57
sebastien__et la "balise" elle a pas un tag général ?18:57
sebastien__.Element(_tag, attrib=None, nsmap=None, **_extra)18:58
sebastien__le _tag ???18:58
cedksebastien__: ben document-content18:58
sebastien__alors j'aurais une balise <document-content .... et les namespaces>18:59
sebastien__j'aurais pas <office:document-content et les namespaces>18:59
sebastien__dans les fichiers odt et fodt toutes les balises commencent par <office:...>18:59
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)19:00
sebastien__????19:00
nicoesebastien__: http://hg.openhex.org/hgwebdir.cgi/relatorio/file/53e1e499527d/relatorio/templates/opendocument.py#l42619:00
sebastien__je vais m'exprimer correctement c'est sans doute ça le problème19:02
sebastien__Voici le noeud principale du content.xml de l'odt <office:document-content office:version="1.2">19:02
sebastien__Voici le noeud principal du test.fodt <office:document xmlns:..., ....>19:03
sebastien__leur "_tag" c'est donc document-content pour le premier et document pour le deuxième19:04
sebastien__lorsque je fais mon instanciation19:04
sebastien__que dois-je mettre comme nom de "_tag" ? car ceci: content = etree.Element("document-content", nsmap=NSMAP)19:05
sebastien__me donne comme nom de "_tag" document-content19:05
sebastien__et lorsque je l'affiche... j'ai19:06
sebastien__<document-content les namespaces>19:06
nicoesebastien__: regarde le lien que je t'ai donné il y a 6 minutes19:06
nicoeNote bien que si tu as un namespace par défaut il est possible qu'il n'apparaisse pas19:06
nicoeFranchement, à ta place j'essaierai de venir un jour de la semaine19:06
nicoeLà je dois y alle, A+19:07
sebastien__A+19:07
sebastien__je vois bien le lien oui ...19:07
sebastien__C'est le nom du tag qui est particulier c'est ça ?19:08
sebastien__ok19:08
sebastien__j'ai peut-être bien compris19:08
sebastien__Avec ceci :19:11
sebastien__content = etree.Element('{%s}%s' % ("Office","document-content"), nsmap = NSMAP)19:11
sebastien__j'obtiens19:11
sebastien__<ns0:document-content xmlns: ...>19:12
cedkpq tu met "Office" et pas office19:13
sebastien__distraction19:17
sebastien__mais ca me donne le même résultat avec office19:17
-!- bechamel(~user@host-85-201-144-79.brutele.be) has joined #tryton-fr21:50

Generated by irclog2html.py 2.11.0 by Marius Gedminas - find it at mg.pov.lt!