Bonjour,
Puis-je soumettre à votre sagacité ce casse-tête frustrant ?
J'ai un fichier XML de départ comme ceci :Je désirer transformer ce fichier XML en un autre fichier XML en transformant l'élément racine du fichier.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <?xml version="1.0" encoding="UTF-8"?> <dataroot> <document> <fileN>51432.pdf</fileN> <INVC>51432</INVC> <properties> <invoiceNumber>51432</invoiceNumber> <invoiceD>2018-01-24</invoiceD> <customerNbr>5666</customerNbr> </properties> </document> </dataroot>
Au lieu de
<dataroot>
je désire obtenir
<EInvoiceF xmlns="http://tatra.com/ECM">
J'ai écris la transformation suivante :
qui fonctionne mais pas parfaitement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 <?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"/> <!-- Rename <dataroot> element to <EInvoiceF> --> <xsl:template match="dataroot"> <EInvoiceF xmlns="http://tatra.com/ECM" > <xsl:apply-templates select="@*|node()"/> </EInvoiceF> </xsl:template> <!-- Remove namespace declarations --> <xsl:template match="*"> <xsl:element name="{name()}"> <xsl:apply-templates select="@*|node()"/> </xsl:element> </xsl:template> </xsl:stylesheet>
J'obtiensce <document xmlns=""> ne me convient pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <?xml version="1.0" encoding="UTF-8"?> <EInvoiceF xmlns="http://tatra.com/ECM"> <document xmlns=""> <fileN>51432.pdf</fileN> <INVC>514 ....
je voudrais simplement <document> sans le xmlns=""
Pourquoi m'ajoute-t-il ce xmlns="" et comment puis-je m'en débarasser ?
Merci pour votre précieuse aide.
Partager