在xsl-fo中使用if query创建一个循环



我想使用循环迭代XSL FO中的属性,用逗号分隔它们,最后一个元素除外。我在这里读过一些帖子,但不知怎么的,它对我不起作用。

这是我的代码结构示例:

XML:

<artikeldaten>
<artikel id="">
<attribute>
<attribut>a++</attribut>
<attribut>75 Zoll</attribut>  
<attribut>4k Ultra HD</attribut>  
<attribut>UE75RU7179</attribut>  
<attribut>37,5 kg</attribut>
<attribut>154 Watt</attribut>
<attribut>3x HDMI (digital)</attribut>
</attribute>
</artikeldaten>

XSL FO:

<xs:template match="/">
<fo:root>
<fo:page-sequence master-reference="DIN-A4">
<fo:flow flow-name="content">
<fo:block-container>
<fo:block>
<xs:for-each select="artikeldaten/artikel/attribute">
<xs:if test="position()!= last()">
<xs:value-of select="."/>
<xs:text>, </xs:text>
</xs:if>
</xs:for-each>
</fo:block>
</fo:block-container>
//Closing tags

对我来说,这个解决方案总体上是合理的,但不幸的是,它不起作用。

是的,我已经测试过将函数的值放在if查询之外。

如何在XSL FO中正确创建查询?

您的路径似乎缺少选择名为attribut:的元素的最后一步

xs:for-each select="artikeldaten/artikel/attribute/attribut"

相关内容

  • 没有找到相关文章

最新更新