Bonjour je recherche des renseignements pour lire un Fichier XML et importer
les données dans Calc par macro.
Qql aurait-il un bout de code pour comprendre le fonctionnement et ou un
lien ?
Merci D'avance
Bonjour je recherche des renseignements pour lire un Fichier XML et importer
les données dans Calc par macro.
Qql aurait-il un bout de code pour comprendre le fonctionnement et ou un
lien ?
Merci D'avance
Bonjour
factooor wrote
Bonjour je recherche des renseignements pour lire un Fichier XML et
importer les données dans Calc par macro.
Plusieurs approches...
- Créer ses propres filtres (voir Outils> Paramétrage des filtres xml et
%PROGRAM%\share\xslt). Je n'ai pas cherché mais on doit trouver pas
mal d'exemples sur le net.
- Un exemple en basic de manipulation de xml (ici le content.xml du
document lui-même mais cela pourra te donner des pistes).
https://wiki.documentfoundation.org/Macros/Writer/002/fr
- Voir du côté des formulaires XML.
- Lire le fichier texte si la structure est simple... pourquoi pas...
Je ne pourrais pas t'en dire beaucoup plus.
Cordialement
Pierre-Yves
Bonjour,
Bonjour je recherche des renseignements pour lire un Fichier XML et importer
les données dans Calc par macro.Qql aurait-il un bout de code pour comprendre le fonctionnement et ou un
lien ?Merci D'avance
L'approche que j'utilise c'est de transformer le xml en csv, par une transformation xslt par exemple, et ensuite le csv s'ouvre naturellement dans libreoffice.
La transformation xml est assez simple à mettre place généralement. Je dois avoir un ou deux exemples en stock si besoin.
bien cordialement
Nicolas
Bonjour Merci pour ta réponse ça peut-être une approche si tu as envie de
partager je suis preneur 
voilà un exemple,
Le fichier Xml en entrée :
nicolas@ubuntu:~/git-clones/xml-dev/src/xslt
$ cat inputs/table-row-attributes.xml
<?xml version="1.0" encoding="UTF-8"?>
<table>
<row titre='Definitive Xml Schema' auteur='Priscilla WALMSLEY' date='2002' editeur='Prentice Hall'/>
<row titre='Xquery' auteur='Priscilla WALMSLEY' date='2007' editeur="O'Reilly"/>
<row titre='Xslt 2.0 and Xpath 2.0' auteur='Michael KAY' date='2008' editeur='Wiley Publishing'/>
</table>
La transformation xslt :
nicolas@ubuntu:~/git-clones/xml-dev/src/xslt
$ cat attributes-to-csv-root-row.xsl
<?xml version='1.0'?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<!-- Paramétrage de la transformation
l'option strip white space à all
-->
<xsl:output method="text"/>
<xsl:template match="/root">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="row">
<xsl:for-each select="@*">
<xsl:value-of select="."/>
<xsl:if test="not(position()=last())">
<xsl:text>;</xsl:text>
</xsl:if>
</xsl:for-each>
<xsl:text>
</xsl:text>
</xsl:template>
</xsl:stylesheet>
La ligne de commande pour exécuter la transformation :
nicolas@ubuntu:~/git-clones/xml-dev/src/xslt
$ java -cp /usr/local/lib/saxon/9.6.0.4/saxon9he.jar net.sf.saxon.Transform -strip:all -s:inputs/table-row-attributes.xml -xsl:attributes-to-csv-root-row.xsl -o:~/tmp/xml-csv.csv
Et le résultat, le fichier csv attendu :
nicolas@ubuntu:~/git-clones/xml-dev/src/xslt
$ cat \~/tmp/xml-csv.csv
Definitive Xml Schema;Priscilla WALMSLEY;2002;Prentice Hall
Xquery;Priscilla WALMSLEY;2007;O'Reilly
Xslt 2.0 and Xpath 2.0;Michael KAY;2008;Wiley Publishing
nicolas@ubuntu:~/git-clones/xml-dev/src/xslt
$
Bien sûr à adapter en fonction du xml en entrée et du séparateur csv attendu.
les jar saxon sont téléchargement l'url http://saxon.sourceforge.net/
La Home Edition est sous licence libre