nach meiner bisher erfolglosen Recherche poste ich mal mein Problem. Vielleicht hat einer von Euch ein gloreiche Idee.
Die Ausgangssituation ist folgende: Ich habe ein XML-Source aus der ich bestimmte Werte in eine Struktur übertragen muss.
Noch eines vorweg: Wie man XML Sourcen erzeugt, parst als DOM, schreibt, transformiert mit XSLT-Programmen ist alles kein Problem.
Was ist nun mein Problem.
Ich hab in einer Customizing-Tabelle bestimmte Regeln. Die Regeln sind nichts anderes als einfache XPATH-Ausdrücke. Mit Hilfe der Klasse cl_xml_processor und der Methode set_expression kann ich schon mal bestimmte Nodes aus der Source selektieren.
Mir reichen jedoch diese einfachen XPATH ausdrücke nicht aus. Da ich mit der set_expression nur Location Paths angeben kann.
Was ich nun tun möchte ist, dass ich beispielsweise in meiner Customizing-Tabelle auch Ausdrücke angeben kann mit denen ich Nodes verketten kann, was ich in xsl mit <xsl:value-of select="concat(//Node1,//Node2).
Das funktioniert leider mit der Methode set_expression nicht, dass die nur Location Paths schluckt.
Meine nächste Idee wäre nun gewesen zur Laufzeit ein XSL als String zu erzeugen und dieses irgendwie an den XSLT Prozessor zu übergeben. Leider ohne Erfolg. Es wird immer ein XSLT-Programm gebraucht. Was ich schon wieder machen kann, ein XSLT-Programm erzeugen das dann im DDIC abgelegt wird. Das will ich aber nicht.
Mittlerweile bin ich soweit, dass sowas in ABAP nicht möglich ist.