1

何らかの理由で、XSLT (XSLT2、Saxon 9.4 PE を使用) を実行すると、base-uri() がソース ファイルの uri を返しません。

これが私の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>

これをソースxmlファイルで実行すると、次のようになります

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

base-uri(document('')) を使用して、スタイルシート URI をうまく取得できることに注意してください。

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

更新: 間違いなく何か問題があるようです。私が何をしても、プロセッサが SOURCE ディレクトリを調べないようです。

"document('Dummy.xml',.) を試すと、ソース ファイルの名前であるにもかかわらず "Dummy.xml" が見つからないというメッセージが表示されます。

おそらく、jar ファイルを再インストールするか、EditiX サポートに電子メールを送信する必要があります。

4

1 に答える 1

1

コマンドラインから、または独自のコード内で、Saxonをどのように使用しますか?入力ドキュメントをSaxonにどのように提供しますか?コマンドラインからSaxon9.4HE Javaを実行すると(例java -jar saxon9.he input.xml sheet.xsl)、意味のある出力が得られます(例<?xml version="1.0" encoding="UTF-8"?>file:/C:/Users/UserName/Documents/xslt/input.xml)。

于 2012-03-27T13:48:03.793 に答える