[Writer] Import de données XML

Vos meilleures macros et portions de code sont publiées dans cette section.
Aucun support sur une question de programmation ici !

Modérateur: Vilains modOOs

Règles du forum
Aucune question dans cette section !
Celle-ci rassemble les meilleures macros et portions de code. Vous pouvez en revanche commenter ou argumenter le code exposé. Vous pouvez même remercier l'auteur (cela fait toujours plaisir) en indiquant par exemple dans quel cadre ou contexte vous en avez eu l'utilité.
Si vous avez à poster quelque chose, faites-le depuis la section Macros et API et demandez à un modérateur de l'y déplacer.

Import de données XML dans un document Writer

Messagepar anouka » 16 Juil 2007 14:05

Import de données XML dans un ODT

Cette macro réalise un import de données XML dans un document writer.

Le dossier (http://user.services.openoffice.org/fr/ci-joint/fichier/2007/07/16-030253.zip) contient deux documents odt avec les fichiers XML qui vont avec. Le code de la macro est dans le fichier xml_import.txt et fonctionne avec les documents cités précedemment.

Pour tester la macro, il faut placer ces documents odt et XML dans un dossier et indiquer le chemin vers ce dossier dans la macro. Il faut modifier à cet effet la ligne Dossier="C:\macro\" de la macro.
On peut lancer la macro grâce à l'EDI d'Openoffice ou lancer la macro en ligne de commande avec comme paramètre le nom du fichier XML et le nom du document odt.
Ex : "C:\Program Files\OpenOffice.org 2.2\program\swriter.exe" "macro:///Standard.xml_import.Main("bordereau.odt","bordereau.xml")"
(la macro est dans la bibliothèque standard et s'appelle xml_import)

Pour l'instant la macro ouvre le document odt et importe les données XML dedans mais elle peut également ouvrir le document odt en mode caché et l'imprimer automatiquement, certaines lignes doivent être décommentées, cela est spécifié dans la macro.

Voilà en quelques mots comment ça marche : pour récupérer par exemple la valeur de l'attribut nom du noeud Client <Client nom="truc"> on écrit un champ de données : {*Client/nom*} dans le document odt. Cela fonctionne quels que soient les noeuds parents du noeud.

Pour récupérer des données XML de tous les noeuds de même nom, il faut écrire les champs de données dans les commentaires du document (Menu : Fichier/Propriétés/onglet Description). Dans ces champs de données, il faut spécifier comment l'importation doit s'effectuer dans le tableau(dans certaines cellules ...). Ceci est précisé dans le fichier lisez-moi.odt
La macro ne peut récupérer que des valeurs d'attributs mais il ne doit pas être difficile de récupérer les données textuelles entre les balises.

Encore un grand merci à tous ceux qui ont répondu à mes questions sur ce forum et ont permis que je réalise cette macro !!!
anouka
Membre OOrganisé
Membre OOrganisé
 
Message(s) : 53
Inscrit le : 24 Avr 2007 15:49

Retour vers Suprême de code

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 1 invité