J'ai une application qui stocke sa base de données utilisateur dans un fichier XML et j'ai besoin d'exporter les champs sélectionnés vers Filemaker donc mon client et extraire les données sur Filemaker. J'ai réussi à faire un fichier XSLT pour importer des éléments XML, mais je n'arrive pas à trouver un moyen d'importer des éléments. Les pointeurs dans la résolution de ce problème sont très attendus.Comment importer des attributs et des éléments de XML vers Filemaker?
Exemple de fichier XML:
<?xml version="1.0" encoding="utf-8"?>
<APPLICATION_NAME>
<USERS>
<USER>
<ID>15001</ID>
<USERNAME>Administrator</USERNAME>
<!-- other elements -->
<PROPERTYBAG>
<ITEM NAME="LastModifiedDate" VALUE="Fri, 05 Sep 2008 13:13:16 GMT"/>
<ITEM NAME="Registered" VALUE="5.9.2008 16:13:16"/>
<!-- other elements -->
</PROPERTYBAG>
</USER>
<!-- more users -->
</USERS>
</APPLICATION_NAME>
Jusqu'à présent, j'ai réussi à importer des éléments par l'instruction suivante à partir de ce site: http://edoshin.skeletonkey.com/2005/10/use_modular_xsl.html
Et voici le XSLT qui importe ces éléments, mais pas attributs:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns="http://www.filemaker.com/fmpxmlresult">
<xsl:include href="FileMaker.xslt"/>
<xsl:template match="/">
<xsl:call-template name="TABLE">
<xsl:with-param name="METADATA-FIELDS">
<xsl:call-template name="FIELD">
<xsl:with-param name="NAME" select="'ID'"/>
</xsl:call-template>
<xsl:call-template name="FIELD">
<xsl:with-param name="NAME" select="'USERNAME'"/>
</xsl:call-template>
<xsl:call-template name="FIELD">
<xsl:with-param name="NAME" select="'ISADMINISTRATOR'"/>
</xsl:call-template>
<xsl:call-template name="FIELD">
<xsl:with-param name="NAME" select="'LastModifiedDate'"/>
</xsl:call-template>
<xsl:call-template name="FIELD">
<xsl:with-param name="NAME" select="'Registered'"/>
</xsl:call-template>
</xsl:with-param>
<xsl:with-param name="RESULTSET-RECORDS">
<xsl:for-each select="//USER">
<xsl:call-template name="ROW">
<xsl:with-param name="COLS">
<xsl:call-template name="COL">
<xsl:with-param name="DATA" select="ID"/>
</xsl:call-template>
<xsl:call-template name="COL">
<xsl:with-param name="DATA" select="USERNAME"/>
</xsl:call-template>
<xsl:call-template name="COL">
<xsl:with-param name="DATA" select="ACCOUNT/ISADMINISTRATOR"/>
</xsl:call-template>
<xsl:call-template name="COL">
<xsl:with-param name="DATA" select="@Registered"/>
</xsl:call-template>
</xsl:with-param>
</xsl:call-template>
</xsl:for-each>
</xsl:with-param>
</xsl:call-template>
</xsl:template>
</xsl:stylesheet>
Malheureusement, cela ne fonctionne pas non plus, donc mon problème. – Raynet
Désolé pour la réponse trompeuse - réparé, voir si cela aide du tout. – Dror
Merci, 'PROPERTYBAG/ITEM [@ NAME =' Enregistré ']/@ VALUE' a fait l'affaire. * soupir * Je souhaite Filemaker avait une meilleure documentation sur l'importation XML que 'nous utilisons XSLT, voir W3c pour la documentation' – Raynet