【问题标题】:Dynamic Table Rows using XSLT and XML使用 XSLT 和 XML 的动态表行
【发布时间】:2018-08-30 23:57:19
【问题描述】:

我对 XSLT 和 XML 非常陌生。我正在尝试根据从 XML 文件返回的 CASES 数量创建一个动态列表。

关于 CASES 的 XML 部分如下所示:

...
<CASES>
    <CASE>000000000000014-00001</CASE>
    <CASE>000000000000014-00002</CASE>
    <CASE>000000000000014-00003</CASE>
</CASES>
...

我正在创建的表的 XSLT 代码(摘录)如下所示:

...
CASES:
<table style="width: 100%;">
<xsl:for-each select="CASES/CASE">
    <tr>
        <td><xsl:value-of select="CASE"/></td>
    </tr>
</xsl:for-each>
</table>
...

输出是三个空白表格行。你能告诉我我做错了什么吗?

【问题讨论】:

    标签: xml xslt


    【解决方案1】:

    由于您的 xsl:for-each 循环已经选择了 CASE 元素,

    <xsl:for-each select="CASES/CASE">
    

    你的xsl:value-of不应该是

        <td><xsl:value-of select="CASE"/></td>
    

    因为它会查找当前 CASE 元素的 CASE 子元素。

    相反,在循环中只选择当前元素本身,可用.

        <td><xsl:value-of select="."/></td>
    

    【讨论】:

    • 成功了。谢谢你。它把它们并排放置。关于如何让它们各自排成一行的任何建议?
    • 由于&lt;tr&gt;...&lt;/tr&gt; 将单个td 元素包装在CASE 循环中,您显示的XSLT sn-p 已经将它们放在自己的行中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-16
    • 2011-03-24
    • 1970-01-01
    • 2022-01-17
    相关资源
    最近更新 更多