Das Folgende ist das Eingabe-XML, das ein reasoncase-Element hat, das sich wiederholt. Wenn der Code unter reasonCase den Wert hat, beginnt er mit dem Antragsteller und erstellt dann den Antragsteller.Erzeuge wiederholte Elemente basierend auf dem Feldwert in xslt
<input>
<case>
<reasonCase>
<code>Applicant#1234</code>
<key>asd345</key>
</reasonCase>
<reasonCase>
<code>Applicant#1234</code>
<key>asd34567</key>
</reasonCase>
<reasonCase>
<code>Applicant#3456</code>
<key>asd1111</key>
</reasonCase>
<reasonCase>
<code>Applicant#7889</code>
<key>asd9999</key>
</reasonCase>
</case>
</input>
Erwartete Ausgang Code unter reasonCase mit demselben Wert in derselben Anmelderin Elemente in dem Ausgang und entsprechenden Elemente sein, sollte auch in dem gleichen Anmelderin Elemente
<output>
<case>
<applicant>
<objectid>1234</objectid>
<reason>
<key>asd345</key>
</reason>
<reason>
<key>asd34567</key>
</reason>
</applicant>
<applicant>
<objectid>3456</objectid>
<reason>
<key>asd1111</key>
</reason>
</applicant>
<applicant>
<objectid>7889</objectid>
<reason>
<key>asd9999</key>
</reason>
</applicant>
</case>
</output>
Basierend auf dem reasonCase/Code sein sollte = start-with (Antragsteller) müssen die wiederholten Elemente Antragsteller und entsprechende Elemente erstellen.
Bitte geben Sie die unten Xslt zu finden, die ich
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml"/>
<xsl:template match="/">
<output>
<xsl:for-each select="/input/case/reasonCase">
<xsl:variable name="code">
<xsl:value-of select="./code"/>
</xsl:variable>
<xsl:choose>
<xsl:when test="starts-with(./code,'Applicant')">
<Applicants>
<objectId>
<xsl:value-of select="substring-after(/*/*/*[code=$code]/code,'Applicant#')"/>
</objectId>
<reason>
<key><xsl:value-of select="/*/*/*[code=$code]/key"/></key>
</reason>
</Applicants>
</xsl:when>
</xsl:choose>
</xsl:for-each>
</output>
</xsl:template>
</xsl:stylesheet>
versucht
Die Ausgabe, die ich ist bekam, wie unten
<output>
<Applicants>
<objectId>1234</objectId>
<reason>
<key>asd345</key>
</reason>
</Applicants>
<Applicants>
<objectId>1234</objectId>
<reason>
<key>asd345</key>
</reason>
</Applicants>
<Applicants>
<objectId>3456</objectId>
<reason>
<key>asd1111</key>
</reason>
</Applicants>
<Applicants>
<objectId>7889</objectId>
<reason>
<key>asd9999</key>
</reason>
</Applicants>
</output>
helfen Sie mir bitte, um die erwartete Ausgabe zu erhalten.
Wo genau stecken Sie fest? –
Ich habe die Anforderung wie oben gezeigt. Ich kann keine Logik für das selbe implementieren. Brauche Hilfe mit der Logik. – user1731504
Wir sind nicht hier, um Ihren Code für Sie zu schreiben. Wenn Sie eine bestimmte Frage oder Schwierigkeit haben, zeigen Sie Ihren Versuch und fragen Sie, wie Sie ihn beheben können. –