XML Transformation et namespaces
Bonjour à tous,
Je souhaite transformer un XML en un autre XML totalement différent, le second comportant des namespaces. Je n'arrive pas à obtenir ce que je veux.
Voici l'XML d'origine :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| <Envelope>
<Body>
<INVOIC>
<BGM>
<cmp01>
<e01_1001>380</e01_1001>
<e04_1000>VERSION</e04_1000>
</cmp01>
<e01_1004>NUM_DOCUMENT</e01_1004>
<e02_1225>9</e02_1225>
</BGM>
</INVOIC>
</Body>
</Envelope> |
Voici le fichier à obtenir :
Code:
1 2 3 4 5 6 7
| <DXInvoice xmlns="http://www.doc-process.com/schema/extended/invoice"
xmlns:aa="AdresseA">
<Invoice xmlns="">
<aa:ID>NUM_DOCUMENT</ID>
<CopyIndicator>VERSION</CopyIndicator>
</Invoice>
</DXInvoice> |
Mon xslt commence comme ça :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| <?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns="http://www.doc-process.com/schema/extended/invoice"
xmlns:aa="AdresseA">
<xsl:template match="Envelope">
<xsl:element name="DXInvoice">
<xsl:element name="Invoice">
<xsl:element name="aa:ID">
<xsl:value-of select="Body/INVOIC/BGM/e01_1004" />
</xsl:element>
<xsl:element name="CopyIndicator">
<xsl:value-of select="Body/INVOIC/BGM/cmp01/e01_1001" />
</xsl:element> |
et voilà ce que j'obtiens :
Code:
1 2 3 4 5 6
| <DXInvoice xmlns="http://www.doc-process.com/schema/extended/invoice">
<Invoice>
<aa:ID xmlns:aa="AdresseA">NUM_DOCUMENT</aa:ID>
<CopyIndicator>VERSION</CopyIndicator>
</Invoice>
</DXInvoice> |
Il maque presque tout.
Pourriez-vous m'aider ?
et, au passage, quelqu'un saurait-il m'expliquer à quoi sert xmlns="" dans l'élément Invoice ?
Par avance merci