Hallo,
leider tappe ich weiterhin im dunkeln. Ich versuch mein Problem einfach nochmal darzustellen. Habs vielleicht einfach nicht ganz schlüssig erklärt.
In meiner Quell-XML können Daten zu verschiedenen Sachverhalten enthalten sein. Z.b. Stamm- und Bewegungsdaten. Mit meiner XSLT-Transformation würde ich gerne die einzelnen Daten getrennt einlesen. Es gibt als eine Transformation für Stamm- und eine für Bewegungsdaten.
Mit Templates sollte das ja klappen. Die Navigation zu den einzelnen Werten klappt beim Testen der Transformation auch – es wird die gewünschte Struktur dargestellt. Mein Problem ist nun, dass Werte eines Elements in dieser Form:
<VERFAHREN>¶
--<FIRMA>Microsoft</FIRMA>¶
--<PRODUKT>Windows</PRODUKT>
--<VERSION>7</VERSION>
</VERFAHREN>¶
nicht in meiner Tabelle gespeichert werden.
g_xml enthält die XML als String,
gt_res enthält Referenzen auf interne Tabellen.
CALL TRANSFORMATION xslt
SOURCE XML g_xml
RESULT (gt_res).
Passendes XSLT:
IKOPF ist auch der Name für die Referenz auf die interne Tabelle
<xsl:template match="/">
----<asx:abap xmlns:asx="
http://www.sap.com/abapxml" version="1.0">
-----<asx:values>
------<IKOPF>
-------<xsl:apply-templates select="//KOPF"/>
------</IKOPF>
-----</asx:values>
----</asx:abap>
</xsl:template>
<xsl:template match="KOPF">
----<item>
-----<VERFAHREN>
--------<FIRMA>
--------<xsl:value-of select="FIRMA"/>
--------</FIRMA>
--------<PRODUKT>
--------<xsl:value-of select="PRODUKT"/>
--------</PRODUKT>
--------<VERSION>
--------<xsl:value-of select="VERSION"/>
--------</VERSION>
-----</VERFAHREN>
-----<SCHNITTSTELLENVERSION>
------<xsl:value-of select="SCHNITTSTELLENVERSION"/>
-----</SCHNITTSTELLENVERSION>
----</item>
</xsl:template>
Schnittstellenversion wird einwandfrei eingelesen. Firma, Produkt und Version werden zwar im Test von der Struktur her dargestellt, aber keine Werte werden in die Tabelle geschrieben.
Hat jemand für mein Problem eine zündende Idee oder ein kleines Beispiel? Konnte leider nur Beispiele für einfache XSLTs finden.
Bin für jede Hilfe dankbar.
Viele Grüße
Julian