我在.NET应用程序中使用fop 1.0 我的样式表看起来像
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet ... version="1.0" ...>
...
<xsl:param name="fromPerson" select="'1'"/>
<xsl:param name="toPerson" select="'1'"/>
...
<xsl:template match="*[local-name()='Person']">
<xsl:if test="(position() >= number($fromPerson))>
...
</xsl:if>
</xsl:template>
问题是函数number()失败了:
Zeilennummer221; Spaltennummer267; #UNKNOWN (cli.System.Int32) kann nicht in eine Zahl
konvertiert werden!
(Position des Fehlers unbekannt)org.apache.fop.fo.ValidationException: "fo:root"
is missing child elements. Required content model: (layout-master-set, declarations?,
bookmark-tree?, (page-sequence|fox:external-document)+) (Keine Kontextinformationen
verf³gbar)
重要提示:
#UNKNOWN (cli.System.Int32) cannot be converted into an integer
btw:我通过使用&lt; xsl:message&gt;打印出值来测试它。
知道为什么会出现错误吗?
答案 0 :(得分:1)
可以传递给全局样式表参数的值类型取决于处理器的API。我猜你使用的处理器的API不允许使用cli.System.Int32类型的值。
确实,此处列出了Microsoft API接受的类型:
http://msdn.microsoft.com/en-us/library/system.xml.xsl.xsltargumentlist.addparam.aspx
答案 1 :(得分:-1)
我认为您需要<xsl:variable>
,而不是<xsl:param>
。参数是<xsl:template>
元素的子元素(或<xsl:function>
元素的XSLT 2中的子元素。