javax.xml.transform.TransformerException:找不到函数:unparsed-text

时间:2013-10-15 06:54:48

标签: java xslt-2.0 xsl-fo apache-fop

我正在使用Apache FOP进行PDF生成。我想使用unparsed-text()函数来读取XSL文件中的非xml文档。

写完这个功能后我得到了这个错误。 这是我的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>

如何删除此错误?如果可能的话,或者给我任何替代方案。 谢谢。

1 个答案:

答案 0 :(得分:3)

该错误表明您正在使用XSLT 1.0处理器来运行XSLT。只有Saxon 9等XSLT 2.0处理器支持unparsed-text