Apache FOP を使用して、PDF ファイルに情報を収集したいと考えています。XML ソースにはいくつかの子ノード a から e があります。
<node>
<a>some val</a>
<b>some other val</b>
<c>more val</c>
<d>even more val</d>
<e>a last val</e>
</node>
それらすべてを表示したくありません。a、b、c は常に表示されますが、空の場合もあります。表示される値の最大量は 3 です。したがって、d と e はオプションであり、その順序を維持する必要があります。
残念ながら、XML 構造は変更できません。
そのための適切な XSLT は何ですか? 私は試した
<xsl:for-each select="child::*[name()='a' or name() = 'b' or name() = 'c' or name() = 'd' or name() = 'e'][string-length(.)>0]">
<xsl:if test="position() <= 3">
<xsl:value-of select="name()"/>
</xsl:if>
</xsl:for-each>
しかし、それは私に順序付きリストをもたらしません。:(