Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XSL/XSLT/XPATH XML Discussion :

Répétition du nom du child name après la transformation XSL


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Nouveau Candidat au Club
    Répétition du nom du child name après la transformation XSL
    Bonjour

    Dans mon XML il peut y avoir plusieurs fois la donnée garantie / entité / personne qui contiennent plusieurs valeurs.

    Code JSON :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
      "sinistre":{
             "codePays":"FRA",
    		 "description":"le sinistre a été ouvert",
             "codeAuto":"N",
             "garantie":[ {
                "codeGarantie":"REC",
                "typeDommage":"M",
                "nombreVehiculeTiers":"1",
                "nombreTiers":"A"
             },{
                "codeGarantie":"REC",
                "typeDommage":"M",
                "nombreVehiculeTiers":"1",
                "nombreTiers":"A"
             }
             ]
          },



    Ci-dessous mon XSL j'ai réussi à mettre en place la prise en compte de plusieurs garanties possibles mais j'ai un problème de transformation

    XSL :
    [CODE] <!-- 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"/>":[]} [{}] {} , "" : "", [/CODE] Transformation souhaitée : [CODE=JSON]"garantie":[{"codeGarantie":"REC","typeDommage":"M","nombreVehiculeTiers":"1","nombreTiers":"A"}, {"codeGarantie":"REC","typeDommage":"C","nombreVehiculeTiers":"1","nombreTiers":"13"},{"codeGarantie":"DOT","typeDommage":"M","nombreVehiculeTiers":"0","nombreTiers":"13"}]},[/CODE] Transformation que j'ai :( [CODE=JSON]"garantie":[{"codeGarantie":"INC","typeDommage":"M","nombreVehiculeTiers":"0","nombreTiers":"0"}], "garantie":[{"codeGarantie":"TES","typeDommage":"M","nombreVehiculeTiers":"1","nombreTiers":"1"}]},[/CODE] le nom "garantie" revient à chaque fois ... alors que j'aimerais juste avoir },{ entre les 2 garanties avec uniquement les infos contenues dans Garantie Merci pour votre aide, je débute :oops::oops:

  2. #2
    Membre émérite
    Il semble reposer la question est nécessaire, ce n'est pas clair du tout. Sinon, googlez le net pour mots clés comme "xsl, xml to json" pour s'inspirer par toute sorte d'outils.

###raw>template_hook.ano_emploi###