Hai bisogno del tuo aiuto per la mappatura xslt. Supponiamo che la fonte sia come sotto.
<A>
<B>
<C>Test1</C>
<D></D>
</B>
<B>
<C>Test2</C>
<D></D>
</B>
</A>
Laddove l'elemento B è illimitato, lascia il mio target xsd come sotto.
<X>
<Y></Y>
</X>
Voglio mappare tutto il valore dell'elemento C nell'elemento Y in questo modo.
<X><Y>Test1,Test2</Y></X>
Come posso implementare, ho bisogno del tuo aiuto Saluti
risposte:
0 per risposta № 1Puoi provare qualsiasi opzione in base alla versione XSLT che stai utilizzando.
XSLT 1.0
In XSLT 1.0, è necessario scorrere il file <C>
elementi e concatenare i valori e ,
separatore. Rispetto a XSLT 2.0, questo ha bisogno di più codice.
<xsl:template match="A">
<X>
<Y>
<xsl:for-each select="B/C">
<xsl:value-of select="." />
<xsl:if test="position() != last()">
<xsl:value-of select="", "" />
</xsl:if>
</xsl:for-each>
</Y>
</X>
</xsl:template>
XSLT 2.0
In XSLT 2.0, è disponibile un approccio molto ottimizzato, a condizione che si stia utilizzando una fabbrica come Saxon vale a dire. saxon9he.jar
in caso di Java.
<xsl:template match="A">
<X>
<Y>
<xsl:value-of select="B/C" separator=", " />
</Y>
</X>
</xsl:template>
Entrambi questi modelli forniscono l'output desiderato.
<X>
<Y>Test1, Test2</Y>
</X>