Ich brauche die Daten des Elements priorize zu bekommen. Ich habe eine Bedingung, müssen die <AAA>
zuerst, wenn es nicht null ist. Sonst bekomme ich die Daten von <BBB>
. Das Elternelement <ParentElem>
von <BBB>
kann viele Male auftreten, so habe ich zum Beispiel 3 <ParentElem>
, ich muss den gesamten Wert von <BBB>
verketten. Unten ist meine XML-Datei, in der das <AAA>
Element NULL ist. In diesem Fall erhalte ich den Wert vom <BBB>
Element.Verketten Sie alle Daten mit XSLT
INPUT
<RootElem>
<DataRec>
<Struc>
<AAA></AAA>
</Struc>
<ParentElem>
<Docu>
<BBB>11111</BBB>
</Docu>
</ParentElem>
<ParentElem>
<Docu>
<BBB>22222</BBB>
</Docu>
</ParentElem>
<ParentElem>
<Docu>
<BBB>33333</BBB>
</Docu>
</ParentElem>
</DataRec>
</RootElem>
ERWARTETES ERGEBNIS
<ID>111112222233333</ID>
XSLT
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml"/>
<xsl:strip-space elements="*"/>
<xsl:template match="/">
<xsl:choose>
<xsl:when test="not(normalize-space(/RootElem/DataRec/Struc/AAA)='')">
<ID>
<xsl:value-of select="/RootElem/DataRec/Struc/AAA"/>
</ID>
</xsl:when>
<xsl:when test="not(normalize-space(/RootElem/DataRec/ParentElem/Docu/BBB)='')">
<xsl:for-each select="/RootElem/DataRec/ParentElem">
<ID>
<xsl:value-of select="concat(./Docu/BBB)"/>
</ID>
</xsl:for-each>
</xsl:when>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
Ich weiß nicht, wie zu tun die Verkettung für jedes Auftreten von <BBB>
. Ist es möglich, es in XSLT zu tun? Ich benutze XSLT 2.0
Vielen Dank.
Th Ank you @ michael.hor257k für das Feedback. – Nathan