Bonjour !
Je suis débutant en XML/XSL et du coup j'ai un peu de mal malgré mes nombreuses recherches sur internet.
Du coup voila mon problème, j'ai ce code en xml :
Je souhaite le passer de cette forme ci :
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"?> <BAT> <BatID>3HLMBQ</BatID> <fichier>2017060315.pdf</fichier> <status>1</status> <commentaire>Validation par mail</commentaire> <qui>Test</qui><email/> <quand>2017-06-21 12:37:56</quand> </BAT>
J'ai déjà fais ça en XSL :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <?xml version="1.0" encoding="UTF-8"?> <Infos_Commande_MasterPrint> <Commande ID= "201705.0078" > <DepartBAT>2017-05-09</DepartBAT> </Commande> </Infos_Commande_MasterPrint>
Ce qui me donne ceci :
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60 <?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" encoding="UTF-8" doctype-public="-//W3C//DTD HTML 4.01//EN" doctype-system="" indent="yes" /> <!-- Recuperer les infos--> <xsl:template match="BAT"> <xsl:copy> <xsl:apply-templates/> </xsl:copy> </xsl:template> <xsl:template match="fichier"> <xsl:copy-of select="."/> </xsl:template> <xsl:template match="quand"> <xsl:copy-of select="."/> </xsl:template> <!-- Modifier les noms --> <xsl:template match="quand" priority="1"> <xsl:element name="DepartBAT"> <xsl:apply-templates select="@*[name()!='val']|node()"/> </xsl:element> </xsl:template> <xsl:template match="BAT" priority="1"> <xsl:element name="Infos_Commande_MasterPrint"> <xsl:apply-templates select="@*[name()!='val']|node()"/> </xsl:element> </xsl:template> <xsl:template match="fichier" priority="1"> <xsl:element name="commande"> <xsl:apply-templates select="@*[name()!='val']|node()"/> </xsl:element> </xsl:template> <xsl:template match="@*|node()" priority="0"> <xsl:copy> <xsl:apply-templates select="@*|node()"/> </xsl:copy> </xsl:template> <!-- Les éléments à ne pas recopier --> <xsl:template match="BatID"/> <xsl:template match="status"/> <xsl:template match="commentaire"/> <xsl:template match="qui"/> <xsl:template match="email"/> </xsl:stylesheet>
Donc voila, j'aimerai bien réussir a déplacer <DepartBAT> dans <commande> ainsi que lui donner en attribut ce qu'elle contient.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE Infos_Commande_MasterPrint PUBLIC "-//W3C//DTD HTML 4.01//EN" ""> <Infos_Commande_MasterPrint> <commande>2017060360.pdf</commande> <DepartBAT>2017-06-21 10:08:06</DepartBAT> </Infos_Commande_MasterPrint>
Si c'est possible (j'en demande beaucoup), j'aimerai aussi savoir si il est possible de ne garder que la date dans la balise <DepartBAT> et enlever l'heure.
Voila si quelqu'un peut m’éclairer il est le bienvenu.
Thomas
Partager