XSLT如何使用XALAN迭代Java列表
我尝试使用XSLT迭代数组,以获得如下所示的最终文本:XSLT如何使用XALAN迭代Java列表,java,arrays,xml,xslt,Java,Arrays,Xml,Xslt,我尝试使用XSLT迭代数组,以获得如下所示的最终文本: array1.firstElement array1.secondElement <renglon1> <rubro>rubro1</rubro> <nombreEmpresaDebe>firstElement</nombreEmpresaDebe> </renglon1> <renglon2> <rubro>r
array1.firstElement
array1.secondElement
<renglon1>
<rubro>rubro1</rubro>
<nombreEmpresaDebe>firstElement</nombreEmpresaDebe>
</renglon1>
<renglon2>
<rubro>rubro2</rubro>
<nombreEmpresaDebe>secondElement</nombreEmpresaDebe>
</renglon2>
我的XSLT中有以下内容:
<xsl:param name="nombreEmpresaDebe" />
renglones/reglon
是我节点的名称,我已经用以下代码对其进行了迭代:
<xsl:for-each select='renglones/renglon'>
<label>
<xsl:value-of select="rubro" />
</label>
<label>
<xsl:value-of select="$nombreEmpresaDebe"/>
</label>
<xsl:for-each>
您可以通过调用递归模板来实现这一点。比如说
<xsl:call-template name="outputList">
<xsl:with-param name="list" select="$nombreEmpresaDebe"/>
<xsl:with-param name="index" select="0"/>
</xsl:call-template>
其中模板的定义如下
<xsl:template name="outputList">
<xsl:param name="list"/>
<xsl:param name="index"/>
<xsl:if test="number($index) < java:size($list)">
<label>
<xsl:value-of select="$nombreEmpresaDebe"/>
</label>
<xsl:call-template name="outputList">
<xsl:with-param name="list" select="$list"/>
<xsl:with-param name="index" select="number($index)+1"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
我应该注意到,我的答案并没有将它与您正在处理的另一个节点列表的迭代结合起来,但这是可以与之结合的基本列表迭代技术。另外,我意识到这已经晚了3年,但其他人发现了这个问题,并从中受益。您可以通过调用递归模板来实现这一点。比如说
<xsl:call-template name="outputList">
<xsl:with-param name="list" select="$nombreEmpresaDebe"/>
<xsl:with-param name="index" select="0"/>
</xsl:call-template>
其中模板的定义如下
<xsl:template name="outputList">
<xsl:param name="list"/>
<xsl:param name="index"/>
<xsl:if test="number($index) < java:size($list)">
<label>
<xsl:value-of select="$nombreEmpresaDebe"/>
</label>
<xsl:call-template name="outputList">
<xsl:with-param name="list" select="$list"/>
<xsl:with-param name="index" select="number($index)+1"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
我应该注意到,我的答案并没有将它与您正在处理的另一个节点列表的迭代结合起来,但这是可以与之结合的基本列表迭代技术。另外,我意识到这已经晚了3年,但其他人发现了这个问题并从中受益。您到底使用哪种XSLT处理器,它的文档是否建议您可以将Java
Java.util.List
对象作为参数传递,然后解释它们如何在XSLT中公开?我使用的是XALAN,但是我没有找到任何关于这方面的信息。您到底使用哪种XSLT处理器,它的文档是否建议您可以将JavaJava.util.List
对象作为参数传递,然后它是否解释了它们是如何在XSLT中公开的?我使用的是XALAN,但我没有找到任何关于这方面的信息。