[XSL]Ajout Namespace a partir du contenu d'une balise
Bonjour à tous,
A aujourd'hui je souhaiterai créer 'dynamiquement' le namespace de mon xml via un XSL mais je n'y arrive pas :-(
En entrée j'ai çà :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
<MessageOperateur>
<EnveloppeConnexion>
<connexionId>120023015</connexionId>
<interchangeAgreementId>00000001</interchangeAgreementId>
<numEnveloppe>1023182249</numEnveloppe>
<DateTime>
<date>23/10/09</date>
<time>18:22:49</time>
</DateTime>
<applicationId>toto</applicationId>
</EnveloppeConnexion>
<Messages>
<Message>
<EnveloppeMessage>
<schemaID>MessageMFR815</schemaID>
<schemaVersion>0.1</schemaVersion>
<partyId>titi</partyId>
<transactionId>1256314969557</transactionId>
<numseq>0</numseq>
</EnveloppeMessage>
</MessageOperateur> |
et je souhaiterai
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
<MessageOperateur xmlns : http://namespace1/MFR815>
<EnveloppeConnexion>
<connexionId>120023015</connexionId>
<interchangeAgreementId>00000001</interchangeAgreementId>
<numEnveloppe>1023182249</numEnveloppe>
<DateTime>
<date>23/10/09</date>
<time>18:22:49</time>
</DateTime>
<applicationId>toto</applicationId>
</EnveloppeConnexion>
<Messages>
<Message>
<EnveloppeMessage>
<schemaID>MessageMFR815</schemaID>
<schemaVersion>0.1</schemaVersion>
<partyId>titi</partyId>
<transactionId>1256314969557</transactionId>
<numseq>0</numseq>
</EnveloppeMessage>
</MessageOperateur> |
Tout en sachant que je vais chercher l'information dans la balise <SchemaID>
Le code que j'ai fait aujourd'hui me permet seulement de le faire en dur :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="*" priority="3">
<xsl:element name="{local-name()}" namespace="http://namespace1/">
<xsl:apply-templates select="@*|node()" />
</xsl:element>
</xsl:template>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet> |
Si vous avez des idées précieuses, je vous en remercie.
Merci d'avance.