Rapidement, je transmet un flux XML à l'aide de SOAP. Mon problème est de type XSL et pas Web Service ce qui explique ce post dans ce forum .
Je transforme donc ce flux à l'aide d'un fichier XSL.
Voilà mon entrée XML (simplifiée) :
Le rôle du xsl est de supprimer la balise "Useless", et de renommer la balise "testA" en "test".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <web:testA xmlns:web="http://lien/"> <Livre>Dune</Livre> <Magie>1</Magie> <Useless>INUTILE</Useless> </web:testA>
Autre chose, lea un namespace qui peut être variable et que l'on ne connaît pas à l'avance, donc pas forcément "web". J'ai donc fait en sorte que mon xslt prenne en compte ce problème.
Code : Sélectionner tout - Visualiser dans une fenêtre à part web:testA
Mon xsl :
Et en sortie 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
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:plop="http://lien/"> <xsl:output method="xml" encoding="UTF-8" indent="no" standalone="no" omit-xml-declaration="yes" /> <xsl:template match="node() | @*" xmlns="http://lien/"> <xsl:choose> <xsl:when test="local-name() = 'testA'"> <xsl:element name="plop:test"> <xsl:apply-templates /> </xsl:element> </xsl:when> <xsl:when test="local-name() = 'Livre'"> <xsl:element name="Livre"> <xsl:apply-templates /> </xsl:element> </xsl:when> <xsl:when test="local-name() = 'Magie'"> <xsl:element name="Magie"> <xsl:apply-templates /> </xsl:element> </xsl:when> <xsl:otherwise> <xsl:copy> <xsl:apply-templates select="node() | @*" /> </xsl:copy> </xsl:otherwise> </xsl:choose> </xsl:template> <xsl:template match="Useless" /> </xsl:stylesheet>
Mon problème : Je veux faire disparaître les
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <plop:test xmlns:plop="http://lien/"> <Livre xmlns:="http://lien/">Dune</Livre> <Magie xmlns="http://lien/">1</Magie> </plop:test>à côté de "Livre" et "Magie" et quoi que je fasse je n'y arrive pas...
Code : Sélectionner tout - Visualiser dans une fenêtre à part xmlns:="http://lien/"
J'aimerai également avoir des avis sur le code du xslt en lui même (notamment pour la gestion du namespace variable).
Merci d'avance pour votre aide !
Partager