我們需要加載一個二進制文件,base64對包含結果的文件進行編碼輸出。二進制文件放在服務器上,只能通過URI訪問。在XSLT中加載二進制 - base64編碼
我已經寫了下面的XSLT腳本,但它只適用於通過文件系統可訪問的文件。如果我插入URI,而不是文件路徑,我自然會得到一個錯誤:URI模式不是'文件'。
任何人都可以告訴我如何使這個代碼工作的URI?
<xsl:stylesheet version="2.0" xmlns:java="java" xmlns:file="http://expath.org/ns/file" xmlns:saxon="http://saxon.sf.net/" xmlns:bin="http://expath.org/spec/binary" 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" xpath-default-namespace="http://rep.evenex.dk/schema/evenex/eBusiness_01">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="/">
<xsl:variable name="tiffPath">
<xsl:value-of select="'C:/CGI_tiff_files/165238_EM37010002609.tiff'"/>
<!--<xsl:value-of select="'https://www.dropbox.com/s/htw5ckxjfepye0y/altova.gif?dl=0'"/>-->
</xsl:variable>
<xsl:variable name="tiffBas64encoded">
<xsl:value-of select="file:read-binary($tiffPath)"/>
</xsl:variable>
<!--Tiff vars end-->
<xsl:element name="root">
<xsl:element name="base64EncodeTiff">
<xsl:attribute name="path"><xsl:value-of select="$tiffPath"/></xsl:attribute>
<xsl:value-of select="$tiffBas64encoded"/>
</xsl:element>
</xsl:element>
</xsl:template>