2012-03-27 58 views
1

出於某種原因,當我運行XSLT(使用XSLT2,Saxon 9.4 PE)時,base-uri()沒有返回源文件的URI。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"?> 

請注意,我能夠檢索樣式表URI很好,使用base-uri(document(''))。

我也沒有成功使用document-uri(/)。

更新:看起來像肯定有什麼不對勁。看起來我沒有做任何事情讓處理器查看SOURCE目錄。

當我嘗試「文件(‘Dummy.xml’,.),它說,它無法找到‘Dummy.xml’即使這是源文件的名稱。

也許我應該重新安裝jar文件或電子郵件EditiX支持

+0

我需要得到baseuri請幫我給m e一些建議... – 2016-04-29 10:17:03

+0

要獲得源xml的基本URI,您應該只能使用base-uri()。這是我用來可靠地獲取源xml文件的目錄: 2016-04-30 13:21:17

+0

如果您正在尋找XSL樣式表的URI,static-base-uri()應該在大多數情況下工作。 – 2016-04-30 15:23:41

回答

1

如何從命令行或在自己的代碼中使用Saxon?如何向Saxon提供輸入文檔? 當我從命令行運行Saxon 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文件。 – 2012-03-27 15:04:01

+0

我不熟悉那個編輯器,如果沒有人在這裏顯示那個編輯器的知識,那麼你可能想在支持該編輯器的用戶論壇上詢問。 – 2012-03-28 09:48:02