Ich bin neu in XSLT und XML-Strukturen haben, die wie folgt aussehen:Wie benenne ich ein XML-Element mit dem Wert seines ersten Attributs mit XSLT um?
<Loop LoopId="1000A" Name="SUBMITTER NAME">
.... a bunch of sub-elements, etc.
</Loop>
Ich versuche, eine XSLT zu schreiben, die sie alle in diese umwandeln: (verketten den Wert des LoopId Attribut an ihre Mutter Elementname)
<Loop1000A LoopId="1000A" Name="SUBMITTER NAME">
.... a bunch of sub-elements, etc.
</Loop1000A>
ich habe ein Stylesheet, das mich da fast alle die Quere kommen, aber es wird immer von dem Attribute los LoopId und ich weiß nicht, warum - das Stylesheet unter folgendem Ergebnis:
<Loop1000A Name="SUBMITTER NAME">
.... a bunch of sub-elements, etc.
</Loop1000A>
Gibt es eine Möglichkeit, es zu ändern, damit ich das LoopId Attribut behalte?
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="@LoopId"/>
<xsl:template match="*[@LoopId]">
<xsl:variable name="vRep" select="concat('Loop',@LoopId)"/>
<xsl:element name="{$vRep}">
<xsl:apply-templates select="node()|@*"/>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
Dank
Sorry - Fehler Bearbeitung - im obigen Beispiel „@Id“ sollte eigentlich „@LoopId“ –
Sind Sie sicher, dass Sie das tun wollen? Es erzeugt ein sehr schwierig zu verarbeitendes XML. –
Bitte ändern Sie Ihre Frage nicht in eine komplett andere, nachdem die ursprüngliche Frage bereits beantwortet wurde! –