Hallo,
ich wollte mal einen xsl Filter für OpenOffice schreiben. Allerdings scheitere ich schon an der banalen Aufgabe, innnerhalb der xsl transformation den pfad und filenamen der xml quelle zu erhalten. Da der dort verwendete xalan-j kein xslt2.0 unterstützt, steht mir auch keine fn:base-uri() Funktion zur Verfügung. Also habe ich mich mal auf die Suche nach Erweiterung gemacht bzw. für die Einbindung von Java classes entschlossen, da doch eine vordefinierte Umgebung existiert, die auch mal das ausweichen auf java classen erlaubt. Nun woltle ich es so lösen
<xsl:stylesheet extension-element-prefixes="NodeInfo" xmlns:NodeInfo="org.apache.xalan.lib.NodeInfo" ... >
<xsl:variable name="FilePath" select="NodeInfo:systemId()"/>
.
</xsl:stylesheet>
Das Komische ist nun, dass in meinem XML Editor (Oxygen) mit xalan das ganze reibungslos läuft. Wenn ich allerdings das ganze durch OpenOffice laufen lasse, wird mir keine Wert zurückgegeben. Test ergeben folgendes:
XML Editor Umgebung:
<xsl:value-of select=function-available('NodeInfo:systemId'/> --> true
<xsl:value-of select=boolean(NodeInfo:systemId())/> --> true
OpenOffice Umgebung:
<xsl:value-of select=function-available('NodeInfo:systemId'/> --> true
<xsl:value-of select=boolean(NodeInfo:systemId())/> --> false
Hat jemand eine Idee, wie ich es dazu bekomme, den Pfad und Dateinamen der xml Datei in eine Variable zu binden?
Wäre dankbar für Hinweise, Gruß H.