2016-07-21 7 views
0

タイトルに似ています。 XML for-eachの最初の要素が空の場合、for-eachは機能しません。最初の行が空のときに「xsl:for-each」は機能しません。

<Uwaga> 
    <linia></linia> 
    <linia></linia> 
    <linia>PLEASE SEND US BACK SIGNED COPY OF THIS INVOICE</linia> 
</Uwaga> 

私は値

<fo:table-cell> 
    <xsl:for-each select="Uwaga/linia"> 
     <fo:block> 
      <xsl:value-of select="."/> 
     </fo:block> 
    </xsl:for-each> 
</fo:table-cell> 

を取得し、結果は=動作していない空です。どんな考え? FOP 0.94を使用します。 最初のタグliniaがvalueの場合、for-eachは正常です。

+0

こんにちはWaldek私たちが再現できるので、完全なXSLT文書を有することが有用であろう。 –

+1

「うまくいかない」とはどういう意味ですか? xsl-foが期待どおりに生成されないという問題はありますか?それとも、xsl-foのpdfを作成しても、期待通りの出力が得られていないのですか?ありがとう! –

答えて

0

次はXalanとSaxonで動作します。

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet xmlns:fo="http://www.example.com/" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    version="1.0"> 
    <xsl:template match="/"> 
     <fo:table-cell> 
      <xsl:for-each select="Uwaga/linia"> 
       <fo:block> 
        <xsl:value-of select="."/> 
       </fo:block> 
      </xsl:for-each> 
     </fo:table-cell> 
    </xsl:template> 
</xsl:stylesheet> 

出力は次のとおりです。

<?xml version="1.0" encoding="UTF-8"?> 
<fo:table-cell xmlns:fo="http://www.example.com/"> 
    <fo:block/> 
    <fo:block/> 
    <fo:block>PLEASE SEND US BACK SIGNED COPY OF THIS INVOICE</fo:block> 
</fo:table-cell> 
+0

Xalanでは動作します。私はこのバージョンのFOPに問題があると思うし、これを回避する方法を探しています。 –

+0

xalan(xslスタイルシート変換プロセッサ)とfop(フォーマットオブジェクトプロセッサ)を比較することはできません。私たちはあなたが得る出力を見る必要があります。それが同じであれば、fopは同じ出力を生成するはずです。それが違う場合は、xslなどをチェックする必要があります。 –

関連する問題