From: chris bable (bable2m3@yahoo.fr)
Date: 14/11/2003 - 14:10
Effectivement, vous avez raison, c'est bien la réponse que vous m'apportez qui répond à ma question.
J'avais omis la suite...
Petite question supplémentaire :
j'ai deux fichiers xml (FICHIER_1.xml et FICHIER_2.xml), je n'en veux plus qu'un.
Mon fichier xsl ressemble à :
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:th="URI_de_FICHIER_1_et_FICHIER_2">
<xsl:template match="/">
<config>
<xsl:apply-templates select="document('FICHIER_1.xml')/th:FICHIER_1_config/th:network_interface"/>
</config>
</xsl:template>
<xsl:template match="document('FICHIER_1.xml')/th:FICHIER_1_config/th:network_interface">
<xsl:value-of select="th:arp"/>
<xsl:value-of select="document('FICHIER_2.xml')/th:network/th:interface_name"/>
<xsl:value-of select="document('FICHIER_2.xml')/th:network/th:ip_adresse"/>
<xsl:value-of select="document('FICHIER_2.xml')/th:network/th:net_mask"/>
<xsl:value-of select="document('FICHIER_2.xml')/th:network/th:mtu"/>
etc...
</xsl:template>
</xsl:stylesheet>
Ca semble marcher.
Mais le pb est que mes fichiers FICHIER_1.xml et FICHIER_2.xml sont très longs et leurs noms aussi (plutôt du style
FICHIER_1.xml = un_nom_de_fichier_a_rallonge_pour_differencier_fichier_1_fichier_2.xml - je ne suis pas à l'origine de ces
fichiers).
Comment puis-je remplacer "document('FICHIER_2.xml')" par "fic2", par exemple ?
De plus, dans FICHIER_1 et dans FICHIER_2, on fait référence à un namespace.
Lorsque l'on définit un namespace, doit-on obligatoirement lui associer un préfixe (ici th) ?
Cela semble être le cas quand on veut transformer un fichier xml en un autre (sinon échec d'accès aux valeurs dans les
balises).
cf : http://www-106.ibm.com/developerworks/xml/library/x-tipcombxslt/
"For completeness, document() also accepts a node-set as a parameter, in which case the function assumes each node is a URI.
Finally, you can pass a combination of a string and a node-set as parameters"
A moins que je ne comprenne pas bien...
Merci pour votre aide,
Christophe
-------------------------------------------
Laurent THIBAULT <lthibault@sogitec.fr> wrote:
De: Laurent THIBAULT
À: "'xml-tech@xmlfr.org'"
Objet: [xml-tech] Re: Transformer un fichier XML en un autre XML. Pb avec <> pour creer une nouvelle balise.
Date: Thu, 13 Nov 2003 17:24:45 +0100
Le resultat que vous attendez n'est pas conforme a la norme XML.
En effet, vous ouvrez une balise <config> que vous ne fermez pas.
Si vous n'etes pas contre le fait de la fermer, alors la solution
suivante suffira :
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<config>
<xsl:value-of select="document('Network.xml')/network/arp"/>
</config>
</xsl:template>
</xsl:stylesheet>
Cordialement,
Laurent Thibault.
-----Message d'origine-----
De: chris bable [SMTP:bable2m3@yahoo.fr]
Date: jeudi 13 novembre 2003 16:55
A: site xmlfr.org
Objet: [xml-tech] Transformer un fichier XML en un autre XML. Pb avec
<> pour creer une nouvelle balise.
Bonjour,
je souhaite transformer le fichier Network.xml en Result.xml.
Le fichier xsl intermediaire est : Feuille.xsl
Je n'arrive pas a "ecrire" une nouvelle balise dans le fichier resulat
: pb avec <>.
Network.xml :
<?xml version="1.0" encoding="UTF-8"?>
<network>
<arp>enable</arp>
</network>
Feuille.xsl :
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<config>
<xsl:value-of select="document('Network.xml')/network/arp"/>
</xsl:template>
</xsl:stylesheet>
Result.xml
<?xml version="1.0" encoding="UTF-8"?>
<config> -----------> non ! je veux ecrire : <config>
enable
Savez vous comment faire ?
D'avance merci,
Christophe
---------------------------------
Do You Yahoo!? -- Une adresse @yahoo.fr gratuite et en français !
Testez le nouveau Yahoo! Mail
--
Devenez redacteur <XML>fr et contribuez au developpement du
xml francophone (http://xmlfr.org/infos/redacteurs/) !
Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
Cette liste est a votre disposition pour discuter en francais de
tout sujet technique lie a XML.
Pour resilier votre abonnement, envoyez un message contenant
la commande "unsubscribe" a xml-tech-request@xmlfr.org
(mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
Archive générée par hypermail 2.1.3 le 28/06/2004 - 11:06 UTC
webmaster@xmlfr.org
|