2011-10-31 30 views
0

我在.NET應用程序中使用fop 1.0。
我的樣式看起來像xsl number() - 函數無法轉換

<?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() &gt;= number($fromPerson))> 
    ... 
    </xsl:if> 
</xsl:template> 

的問題是功能號()失敗:

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:我通過打印測試它值爲< xsl:message>

任何想法爲什麼這會帶來錯誤?

回答

-1

我認爲你需要一個<xsl:variable>而不是<xsl:param>。參數是<xsl:template>元素的子元素(或在元素的XSLT 2中的子元素

+1

你錯了帕拉姆可以通過從外面好像在XSLT。指定爲這裏的頂層元素,這在xslt 1.0 a中是可能的nd 2.0。 – FailedDev

+0

我不知道,我認爲#UNKNOWN包含在變量$ fromPerson中,而不是param $ fromPerson。 – Frank