Je suis nouveau sur XSLT. J'ai une exigence pour convertir un XML contenant la paire de valeurs de nom en XML cible. J'ai besoin de générer un XML cible où chaque FieldName est un nom d'élément et sa valeur est FieldValue. Veuillez trouver ci-dessous la sortie dont j'ai besoin. Merci d'avance pour l'aide.XSLT: Nécessité de convertir le contenu de la paire de noms en XML
Source XML:
<SC>
\t <Header>
\t \t <Record>
\t \t \t <FieldName>Schema</FieldName>
\t \t \t <FieldValue>OrderHeader</FieldValue>
\t \t </Record>
\t \t <Record>
\t \t \t <FieldName>Order</FieldName>
\t \t \t <FieldValue>1234</FieldValue>
\t \t </Record>
\t </Header>
\t <Detail>
\t \t <Record>
\t \t \t <FieldName>Schema</FieldName>
\t \t \t <FieldValue>OrderItem</FieldValue>
\t \t </Record>
\t \t <Record>
\t \t \t <FieldName>Item</FieldName>
\t \t \t <FieldValue>1</FieldValue>
\t \t </Record>
\t \t <Record>
\t \t \t <FieldName>Qty</FieldName>
\t \t \t <FieldValue>10</FieldValue>
\t \t </Record>
\t </Detail>
\t <Detail>
\t \t <Record>
\t \t \t <FieldName>Schema</FieldName>
\t \t \t <FieldValue>OrderItem</FieldValue>
\t \t </Record>
\t \t <Record>
\t \t \t <FieldName>Item</FieldName>
\t \t \t <FieldValue>2</FieldValue>
\t \t </Record>
\t \t <Record>
\t \t \t <FieldName>Qty</FieldName>
\t \t \t <FieldValue>20</FieldValue>
\t \t </Record>
\t </Detail>
</SC>
XML cible à générer:
<SC>
<OrderHeader>
<Order>1234</Order>
</OrderHeader>
<OrderItem>
<Item>1</Item>
<Qty>10</Qty>
</OrderItem>
<OrderItem>
<Item>2</Item>
<Qty>20</Qty>
</OrderItem>
</SC>
XSLT que j'ai essayé: Je ne reçois pas e e de sortie désirée
<xsl:template match="Header">
<xsl:apply-templates select="Record"/>
</xsl:template>
<xsl:template match="Record">
<xsl:if test="FieldName = 'Structure'">
<xsl:element name="{FieldValue}">
<xsl:value-of select="./text()"/>
</xsl:element>
</xsl:if>
<xsl:element name="{FieldName}">
<xsl:value-of select="FieldValue"/>
</xsl:element>
</xsl:template>