2012-03-27 14 views
1

Aus irgendeinem Grund gibt base-uri() das uri der Quelldatei nicht zurück, wenn ich eine XSLT (mit XSLT2, Saxon 9.4 PE) ausführe.base-uri gibt uri des Quelldokuments nicht zurück

Hier ist mein Xslt Testfall

<xsl:stylesheet version="2.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
xmlns:xs="http://www.w3.org/2001/XMLSchema" 
xmlns:fn="http://www.w3.org/2005/xpath-functions" 
xmlns:xdt="http://www.w3.org/2005/xpath-datatypes" 
xmlns:err="http://www.w3.org/2005/xqt-errors" 
exclude-result-prefixes="xs xdt err fn"> 

<xsl:output method="xml" indent="yes"/> 

<xsl:template match="/"> 

<xsl:value-of select="base-uri()"></xsl:value-of> 
</xsl:template> 

Wenn ich dies auf eine Quelle xml-Datei ausführen, bekomme ich nur

<?xml version="1.0" encoding="UTF-8"?> 

Bitte beachte, dass ich im Stande bin, das Stylesheet abrufen URI einfach gut mit base-uri (Dokument ('')).

Ich hatte auch keinen Erfolg mit Dokument-URI (/) entweder.

UPDATE: Sieht so aus, als ob da definitiv etwas nicht stimmt. Es scheint, dass nichts, was ich tue, den Prozessor dazu bringt, in das SOURCE-Verzeichnis zu schauen.

Wenn ich versuche, „Dokument (‚Dummy.xml‘,.), sagt sie es nicht finden können‚Dummy.xml‘, obwohl, dass der Name der Quelldatei ist.

Vielleicht sollte ich wieder installieren Die JAR-Datei oder E-Mail EditiX-Unterstützung

+0

Ich brauche die Baseuri bitte helfen Sie mir geben m Einige Vorschläge ... –

+0

Um die Basis-URL des Quell-XML zu erhalten, sollten Sie einfach base-uri() verwenden können. Das ist es, was ich brauche, um das Verzeichnis der Quell-XML-Datei zuverlässig zu erhalten:

+0

Wenn Sie nach der URL des XSL-Stylesheets suchen, sollte static-base-uri() die meiste Zeit funktionieren. –

Antwort

1

Wie verwenden Sie Saxon, von der Befehlszeile oder in Ihrem eigenen Code? Wie geben Sie das Eingabedokument an Saxon? Wenn ich Saxon 9.4 HE Java von der Befehlszeile ausführen (zB java -jar saxon9.he input.xml sheet.xsl) Ich bekomme die sinnvolle Ausgabe (wie <?xml version="1.0" encoding="UTF-8"?>file:/C:/Users/UserName/Documents/xslt/input.xml).

+0

Ich benutze Editix als Editor, der die Datei saxonPE.jar aufruft. –

+0

Ich bin nicht mit diesem Editor vertraut, wenn niemand sonst mit Kenntnissen dieses Editors hier erscheint, könnten Sie in einem Support- oder Benutzerforum fragen, das diesem Editor gewidmet ist. –