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/!