Announcement

Collapse
No announcement yet.

XSLT Transformation von SQL nach XML

Collapse
This topic is closed.
X
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • XSLT Transformation von SQL nach XML

    Hallo zusammen,

    ich habe ein kleines Problem bei der Transformation eines Ergebnisses aus SQL in XML.

    Ich nutze ein SQL-Statement mit

    <table name="VDR_10" namecase="lower">
    <sql><![CDATA[" SQL-Select "]]></sql>
    </table>

    um die nachfolgende Tabelle zu erhalten:

    P1 P2 ident
    3 702 XS0419605406
    3 702 XS0188568751
    4 702 XXXXXXXXXXXX
    4 702 XS1048428012
    3 701 AT0000A0N9A0
    3 701 XS0418690201
    3 701 XS0417728325
    3 701 BE0000314238
    3 701 ES0000101339


    Mein XSLT sieht wie folgt aus

    <xsl:key name="vdr10_kennzahl" match="VDR_10" use="p2"/>

    <xsl:template match="VDR_10">
    <xsl:variable name="this" select="."/>
    <xsl:for-each select="$this[generate-id(.)=generate-id(key('vdr10_kennzahl', p2))]">
    <xsl:sort select="p2" order="ascending"/>
    <POSTEN>
    <xsl:attribute name="p1-id"><xsl:value-of select="p1"/></xsl:attribute>
    <xsl:attribute name="p2-id"><xsl:value-of select="p2"/></xsl:attribute>
    <xsl:for-each select="key('vdr10_kennzahl',p2)">
    <IDENT-Zeile>
    <BETRAG>
    <xsl:value-of select="ident"/>
    </BETRAG>
    </IDENT-ZEILE>
    </xsl:for-each>
    </POSTEN>
    </xsl:for-each>
    </xsl:template>

    und erzeugt einen Output wie den hier

    <POSTEN p1-id="3" p2-id ="702">
    <IDENT-zeile>XS0419605406</IDENT-zeile>
    <IDENT-zeile>XS0188568751</IDENT-zeile>
    <IDENT-zeile>XXXXXXXXXXXX</IDENT-zeile>
    <IDENT-zeile>XS1048428012</IDENT-zeile>
    </POSTEN>

    <POSTEN p1-id="3" p2-id ="701">
    <IDENT-zeile>AT0000A0N9A0</IDENT-zeile>
    <IDENT-zeile>XS0418690201</IDENT-zeile>
    <IDENT-zeile>XS0417728325</IDENT-zeile>
    <IDENT-zeile>BE0000314238</IDENT-zeile>
    <IDENT-zeile>ES0000101339</IDENT-zeile>
    </POSTEN>

    Das ist nicht exakt das was ich brauche. Ich brauche eine Ausgabe wie diese


    <POSTEN p1-id="3" p2-id ="702">
    <IDENT-zeile>XS0419605406</IDENT-zeile>
    <IDENT-zeile>XS0188568751</IDENT-zeile>
    </POSTEN>

    <POSTEN p1-id="4" p2-id ="702">
    <IDENT-zeile>XXXXXXXXXXXX</IDENT-zeile>
    <IDENT-zeile>XS1048428012</IDENT-zeile>
    </POSTEN>

    <POSTEN p1-id="3" p2-id ="701">
    <IDENT-zeile>AT0000A0N9A0</IDENT-zeile>
    <IDENT-zeile>XS0418690201</IDENT-zeile>
    <IDENT-zeile>XS0417728325</IDENT-zeile>
    <IDENT-zeile>BE0000314238</IDENT-zeile>
    <IDENT-zeile>ES0000101339</IDENT-zeile>
    </POSTEN>

    Ich ahne das ich ein weiteres for-each-Konstrukt brauche und habe nun seit heute morgen rumprobiert.
    Irgendwie ist aber heute der Wurm drinnen und ich sehe den Wald vor lauter Bäumen nicht. Kann mir hier einer bitte auf die Sprünge helfen?

  • #2
    Crosspost
    http://stackoverflow.com/questions/2...rom-sql-to-xml
    geschlossen
    Christian

    Comment

    Working...
    X