在XSLT中使用文本字段循环遍历多个pal节点

时间:2013-09-09 06:31:31

标签: loops xslt

我需要遍历具有文本字段的多个节点,以输出到表格中。

这是XML:

<upload-notification>
<delay-message-list>
    <delay-message>Could not get Health Number from Card Number = null</delay-message>
    <delay-message>In order to qualify for the Vitalitydrive Integrator, </delay-message>
</delay-message-list>

这就是我的尝试:

    <table width="800" align="left" class="normalFont" style="table-layout:fixed" border="1">
                        <col width="10%">
                            <col width="90%">
                                <tr bgcolor="lightgrey">
                                    <td align="left" bgcolor="lightgrey" width="800">
                                        please note:
                                    </td>
                                </tr>
                                <xsl:for-each select="/upload-notification/delay-message-list">
                                    <tr>
                                        <td>
                                        1
                                        </td>
                                        <td>
                                            <xsl:value-of select="//delay-message"/>
                                        </td>
                                    </tr>
                                </xsl:for-each>
                            </col>
                        </col>
                    </table>
                    <br/>
                </td>
            </tr>
        </table>

到目前为止它只显示表中的一个字段。

1 个答案:

答案 0 :(得分:1)

使用此说明

<xsl:for-each select="/upload-notification/delay-message-list">

您尝试for-each覆盖所有delay-message-list元素(只有一个)。相反,您需要select个别delay-message元素,然后在for-each内获取您当前正在查看的节点value-of,而不是您当前的代码获取整个文档中第一个 delay-message元素的值。

<xsl:for-each select="/upload-notification/delay-message-list/delay-message">
    <tr>
        <td>1</td>
        <td>
            <xsl:value-of select="."/>
        </td>
    </tr>
</xsl:for-each>

如果您希望行编号为1,2,3等而不是全部编号为1,那么您可以通过替换

来实现
        <td>1</td>

        <td><xsl:value-of select="position()" /></td>