0
Je suis nouveau avec XSLT et j'essaye de transformer un XML en autre.Transformer des balises XML en XML en utilisant XSLT
Le XML source est quelque chose comme ça:
<NoticeContent>
<Version> 1.0 </Version>
<Publisher>me</Publisher>
<Specification>1</Specification>
<Instance>1</Instance>
<NewState>10</NewState>
<Info>
<SDTInInfoExtra>
<Name> Client</Name>
<Value> 1 </Value>
</SDTInInfoExtra>
<SDTInInfoExtra>
<Name> LocalId </Name>
<Value>10 </Value>
</SDTInInfoExtra>
</Info>
</NoticeContent>
Et attendu:
<?xml version="1.0" encoding="UTF-8"?>
<NoticeContent>
<Version></Version>
<Timestamp></Timestamp>
<Publisher></Publisher>
<Instance></Instance>
<NewState></NewState>
<Info>
<Characteristic name="Client" value="1" />
<Characteristic name="LocalId" value="10" />
</Info>
</NoticeContent>
Je suis en train avec le XSL suivant:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes" />
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()" />
</xsl:copy>
</xsl:template>
<xsl:template match="Info">
<xsl:for-each select="SDTInInfoExtra">
<xsl:value-of select="Name" />
<xsl:value-of select="Value" />
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
Le problème essaie de convertir les balises comme:
<SDTInInfoExtra>
<Name> LocalId </Name>
<Value>10 </Value>
</SDTInInfoExtra>
dans:
<Characteristic name="Client" value="1" />
Merci beaucoup pour l'aide!
Merci! J'ai trouvé une autre solution en utilisant: "nom d'attribut" mais le vôtre est plus court et meilleur. –