gpt4 book ai didi

xml - 使用 XSLT 生成 html 表的多个动态行

转载 作者:数据小太阳 更新时间:2023-10-29 02:49:21 25 4
gpt4 key购买 nike

我想根据 XML 中的内容在表中动态创建行。在下面的代码中,我试图创建一个包含 5 列的行(<tr>)。填充 5 列后,我想创建一个新行。

根据以下代码,一行只能包含 5 列。如果我在 XML 上应用 XSL,我会收到错误显示

XSLT compile error. The 'tr' start tag on line 574 does not match the end tag of 'xsl:when'. Line 578, position 7.

570:<table>
571: <xsl:for-each select="/alert/account_links/account_links_info">
572: <xsl:choose>
573: <xsl:when test="position() mod 5 = 1">
574: <tr>
575: <td>
576: <xsl:value-of select="account_id"/>
577: </td>
578: </xsl:when>
579: <xsl:when test="position() mod 5 = 0">
580: <td>
581: <xsl:value-of select="account_id"/>
582: </td>
583: </tr>
584: </xsl:when>
585: <xsl:otherwise>
586: <td>
587: <xsl:value-of select="account_id"/>
588: </td>
589: </xsl:otherwise>
590: </xsl:choose>
591: </xsl:for-each>
592: </table>

输入 Xml:

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<alert>
<account_links>
<account_links_info>
<account_id>1</account_id>
</account_links_info>
<account_links_info>
<account_id>2</account_id>
</account_links_info>
<account_links_info>
<account_id>3</account_id>
</account_links_info>
<account_links_info>
<account_id>4</account_id>
</account_links_info>
<account_links_info>
<account_id>5</account_id>
</account_links_info>
</account_links>
</alert>

谁能帮我解决这个问题?

最佳答案

试试这个解决方案:

<table>
<xsl:for-each select="/alert/account_links/account_links_info[position()mod5=1]">
<xsl:variable name = "current-pos" select="(position()-1) * 5+1"/>
<tr>
<xsl:for-each select="../account_links_info[position()&gt;=$current-pos and position() &lt; $current-pos+5]" >
<td>
<xsl:value-of select="account_id"/>
</td>
</xsl:for-each>
</tr>
</xsl:for-each>
</table>

(这个想法是为 <tr> 的输出设置一个外循环,每五个 account_links_info element 运行一次,而一个内循环用 account_id 值填充行)。

关于xml - 使用 XSLT 生成 html 表的多个动态行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6100197/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com