出於某種原因,當我運行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支持
我需要得到baseuri請幫我給m e一些建議... – 2016-04-29 10:17:03
要獲得源xml的基本URI,您應該只能使用base-uri()。這是我用來可靠地獲取源xml文件的目錄: –
2016-04-30 13:21:17
如果您正在尋找XSL樣式表的URI,static-base-uri()應該在大多數情況下工作。 – 2016-04-30 15:23:41