2011-10-31 1 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 

:私はプリントアウトしてそれをテストしました値は< xsl:message>

これがなぜエラーを引き起こすのか?

答えて

-1

<xsl:param>ではなく、<xsl:variable>が必要だと思います。パラメータは<xsl:template>要素のサブ要素(または<xsl:function>要素のXSLT 2)

+1

をあなたが間違っている場合paramは外部からXSLTに渡すことができます。ここのようなトップ要素として指定されています。これはxslt 1.0で可能です。 2.0。 – FailedDev

+0

私はそれを知らなかったし、param $ fromPersonではなく#UNKNOWNが変数$ fromPersonに含まれていると考えました。 – Frank

関連する問題