2012-03-27 6 views
1

何らかの理由で、XSLT(XSLT2、Saxon 9.4 PEを使用)を実行すると何らかの原因でbase-uri()がソースファイルのURIを返さない。ここでbase-uriがソースドキュメントのuriを返さない

は、私はソースXMLファイルでこれを実行すると、私はちょうど私がスタイルシートを取得することができる午前

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

注意を取得し、私のXSLTのテストケース

<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> 

ですURIはbase-uri(document( ''))を使ってうまくいきます。

私はdocument-uri(/)を使用しても成功しませんでした。

更新:間違いなく間違いがあるようです。私が何もしていないと、SOURCEディレクトリにプロセッサーが表示されるようです。

私がしようとすることは、ソースファイルの名前であってもDummy.xml 『を「文書(『Dummy.xml』を,.)、それは見つけることができないと言う』。

たぶん私は再インストールする必要がありますjarファイルまたは電子メールEditiXサポート。

+0

私はベースリスを得る必要があります。 eいくつかの提案... –

+0

ソースxmlのベースURIを取得するには、base-uri()を使用できるだけです。これは、ソースxmlファイルのディレクトリを確実に取得するために使用します。 '、' $ 1 ') "/> –

+0

XSLスタイルシートのURIを探している場合、static-base-uri()はほとんどの場合動作します。 –

答えて

1

どのようにあなたがサクソンに入力された文書を提供するにはどうすればよい?コマンドラインから、または独自のコード内で、サクソンを使用していますか? 私は、コマンドラインからサクソン9.4 HEのJavaを実行すると、 (例えばjava -jar saxon9.he input.xml sheet.xsl)私はいくつかの意味のある出力を得ます(<?xml version="1.0" encoding="UTF-8"?>file:/C:/Users/UserName/Documents/xslt/input.xmlのように)。

+0

私はエディタとしてEditiXを使用します。これはsaxonPE.jarファイルを呼び出します。 –

+0

私はそのエディタに精通していません。編集者の知識を持って他に誰も表示されない場合は、そのエディタ専用のサポートフォーラムまたはユーザーフォーラムで質問してください。 –

関連する問題