XSL importieren-Nutzung zur Ortung relative Dateipfade auf Windows
Habe ich eine einfache XSL-Datei, die sieht so aus:
<?xml version='1.0'?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:import href="html/docbook.xsl"/>
</xsl:stylesheet>
Habe ich eine XSL-Datei liegt in einem Ordner auf der Festplatte (nicht auf dem web). Es ist ein Pfad relativ zu meiner XSL-Datei (oben) ist:
..\..\..\Dependencies\XSL\xsl\htmlhelp\htmlhelp.xsl
<xsl:import href="..\..\..\Dependencies\XSL\xsl\htmlhelp\htmlhelp.xsl"/>
oder
<xsl:import href="../../../Dependencies/XSL/xsl/htmlhelp/htmlhelp.xsl"/>
scheint nicht zu funktionieren (ich bekomme - nicht finden können, die Datei - Fehler aus xslproc tool.)
Was ist die richtige Art und Weise des Schreibens relative Pfade in der XSL:import ?
Vielen Dank im Voraus,
Paul
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sicher sein, die front-slash Zeichen sind diejenigen, die verwendet werden, d.h.
ist positiv falsch, die nicht brauchen, um zu verfolgen diese Spur.
Kann das Problem sein, dass die "Basis-URI" (wie definiert in RFC 2396) ist nicht das, was wir erwarten. Obwohl ich glaube, der standard ist explizit über die Regeln betreffend die Bestimmung der Basis-URI-gibt es einige Unklarheiten mit verschiedenen xslt-Prozessoren.
Wenn Sie w/XSLT 2.0 können Sie versuchen, zu verwenden fn:base-uri (), um zu sehen, dass dieser URI ist in der Tat die, die Sie erwarten würden.
Wäre es hilfreich, wenn Sie beschrieben, wie Sie versuchen, führen Sie Ihre stylesheets.
Ein häufiges Problem mit relativen Pfaden für die include/import in Java:
Beim laden eines XSLT als StreamSource und nicht einstellen SystemID, der Prozessor nicht weiß, "wo" die XSLT ist und nicht auflösen relativer Pfade.
http://www.onjava.com/pub/a/onjava/excerpt/java_xslt_ch5/index.html?page=5
Die andere Sache zu prüfen ist, dass Ihre relative Pfade sind in der Tat richtig. Navigieren Sie zu dem Ihre XSLT ist in die Eingabeaufforderung und cd zu den relativen Pfad um zu sehen, ob es die Datei findet.
Testete ich eine einfache stylesheet-import mit Ihrem relativen Pfad und xsltproc. Es war für mich - so Ihre relativen Pfad falsch sein muss.
Verwenden xsltproc --stringparam baseURI-file:///Pfad/zu/deinem/stylesheet.xsl -o result.xml stylesheet.xsl input.xml