Bonjour
Alors j'ai trouvé ce fichier xslt qui fait la transformation de XML en JSON et je voulais le comprendre un peu si vous pouvez m'aider ça me ferai plaisir
Alors avant tout l'étoile (*) je pense que c'est ce qui suit la racine du fichier XML mais lorsque c'est comme ça not(*|@*) ou name(*[1]) ou @* qu'est ce que ça signifie ??? s'il vous plaît si vous pouvez m'expliquer ou me donner une piste où je pourrai comprendre j'ai cherché mais j'ai rien trouver donc je vous viens en aide
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 <?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="text"/> <xsl:template match="/">{ <xsl:apply-templates select="*"/>} </xsl:template> <!-- Object or Element Property--> <xsl:template match="*"> "<xsl:value-of select="name()"/>" : <xsl:call-template name="Properties"/> </xsl:template> <!-- Array Element --> <xsl:template match="*" mode="ArrayElement"> <xsl:call-template name="Properties"/> </xsl:template> <!-- Object Properties --> <xsl:template name="Properties"> <xsl:variable name="childName" select="name(*[1])"/> <xsl:choose> <xsl:when test="not(*|@*)">"<xsl:value-of select="."/>"</xsl:when> <xsl:when test="count(*[name()=$childName]) > 1">{ "<xsl:value-of select="$childName"/>" :[<xsl:apply-templates select="*" mode="ArrayElement"/>] }</xsl:when> <xsl:otherwise>{ <xsl:apply-templates select="@*"/> <xsl:apply-templates select="*"/> }</xsl:otherwise> </xsl:choose> <xsl:if test="following-sibling::*">,</xsl:if> </xsl:template> <!-- Attribute Property --> <xsl:template match="@*">"<xsl:value-of select="name()"/>" : "<xsl:value-of select="."/>", </xsl:template> </xsl:stylesheet>
Partager