index mit document() einbinden

Laocoon

Erfahrenes Mitglied
Hallo,

wenn ich mit document() eine externe XML-Datei einbinden will, dann wird diese Datei immer relativ zum Stylesheet gesucht. Ich müsste das allerdings relativ zur aktuellen XML-Datei haben.

XML:
<xsl:for-each select="document('index.xml')//sit:indexLink">
<!-- tue irgendwas -->
</xsl:for-each>

MfG
Daniel
 
Zuletzt bearbeitet von einem Moderator:
Habe das ganze nun mit einem mehr oder weniger zufriedenstellendem Work-around gelöst.
Ich speicher in einem Attribut meiner XML-Datei den Pfad zum Index, und benutze diesen in der document() Funktion.
XML:
        <xsl:for-each select="document(string(//@indexfile))//sit:indexLink">
Angeblich gibts in XSLT2 die Möglichkeit relativ zur Eingabedatei zu arbeiten:
XML:
fn:unparsed-text(fn:resolve-uri(@filenameURI, fn:base-uri(/)),'utf8')
(quelle: http://www.aboutxml.de/2005_09_01_archive.html)

Allerdings hat das bei mir nicht geklappt. Ich harke das Thema für mein Projekt erstmal ab. Allerdings fände ich es interessant wie andere Lösungsansätze aussehen würden (z.B. über XSLT 2).

MfG
Daniel
 
Zuletzt bearbeitet von einem Moderator:
Zurück