2013-10-15 48 views
1

我正在使用Apache FOP生成PDF。我想使用unparsed-text()函數讀取XSL文件中的非xml文檔。javax.xml.transform.TransformerException:找不到函數:unparsed-text

寫完這個函數後,我得到了這個錯誤。 這是我的XSL文件。

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet version="2.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" 
    xmlns:f="Functions"> 

    <xsl:variable name="properties" select="unparsed-text('file.properties')" as="xs:string"/> 
     <xsl:function name="f:getProperty" as="xs:string?"> 
      <xsl:param name="key" as="xs:string"/> 
       <xsl:variable name="lines" as="xs:string*" select=" 
      for $x in 
       for $i in tokenize($properties, '\n')[matches(., '^[^!#]')] return 
       tokenize($i, '=') 
      return translate(normalize-space($x), '\', '')"/> 
     <xsl:sequence select="$lines[index-of($lines, $key)+1]"/> 
    </xsl:function> 

    <xsl:template match=" EmployeeData"> 
     <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"> 
      <fo:layout-master-set> 
       <fo:simple-page-master master-name="simple" 
        page-height="20cm" page-width="10.5cm" margin-left="0.2cm" 
        margin-right="0.2cm"> 
        <fo:region-body margin-top="0.5cm" /> 
       </fo:simple-page-master> 
      </fo:layout-master-set> 
      <fo:page-sequence master-reference="simple"> 

       <xsl:variable name="lang" select="language" /> 

       <fo:flow flow-name="xsl-region-body"> 

        From Properties File <xsl:value-of  select="f:getProperty('language')"/> 


       </fo:flow> 
      </fo:page-sequence> 
     </fo:root> 
    </xsl:template> 
</xsl:stylesheet> 

如何消除此錯誤?或者如果可能的話,給我任何替代方案。 謝謝。

+0

生成的html格式不正確。您只需調試將結果傳遞給PDF生成器的位置。 –

回答

3

錯誤提示您使用XSLT 1.0處理器來運行XSLT。 unparsed-text僅受Saxon 9等XSLT 2.0處理器支持。