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 :
Voici le fichier à obtenir :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 :
et voilà ce que j'obtiens :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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>
Il maque presque tout.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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>
Pourriez-vous m'aider ?
et, au passage, quelqu'un saurait-il m'expliquer à quoi sert xmlns="" dans l'élément Invoice ?
Par avance merci
Partager