【问题标题】:XSLT dynamic table creationXSLT 动态表创建
【发布时间】:2022-08-18 18:58:50
【问题描述】:

我的目标是将 xml 文件转换为 html 文件,并将其内容设置为表格。但是,我只想要每行恰好四个元素,我似乎无法找到如何实现这一点的方法。

成员.xml:

<?xml version = \"1.0\"?> 
<?xml-stylesheet type = \"text/xsl\" href = \"/teammembers_imports.xsl\"?> 
<team>
    <heading>TEST TEAM</heading>
    <member>
        <name>Max Mustermann</name>
        <role>Product Owner</role>
    </member>
    <member>
        <name>Max Mustermann 2</name>
        <role>Product Owner</role>
    </member>
    <member>
        <name>Max Mustermann 3</name>
        <role>Product Owner</role>
    </member>
    <member>
        <name>Max Mustermann 4</name>
        <role>Product Owner</role>
    </member>
    <member>
        <name>Max Mustermann 5</name>
        <role>Product Owner</role>
    </member>
</team>

teammembers_imports.xsl:

<?xml version = \"1.0\" encoding=\"UTF-8\"?>
<xsl:stylesheet version = \"1.0\" xmlns:xsl = \"http://www.w3.org/1999/XSL/Transform\"> 

    <xsl:template match = \"/\">
      <html>
        <body>
          <table>
            <xsl:apply-templates/>
          </table>
        </body>
      </html>
    </xsl:template>
    
    <xsl:template match=\"member\">
      <td>
        <xsl:value-of select=\"name\"/>
      </td>
    </xsl:template>
  </xsl:stylesheet>
  • 不确定“每行正好四个元素”是什么意思。请编辑您的方程式并添加预期结果。

标签: html xml xslt tei


【解决方案1】:

假设您想要一个如下所示的结果:

你可以这样做:

XSLT 1.0

<xsl:stylesheet version="2.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/team">
    <html>
        <body>
            <table border="1">
                <xsl:for-each select="member[position() mod 4 = 1]">
                    <tr>
                        <td>
                            <xsl:value-of select="name"/>
                        </td>
                        <td>
                            <xsl:value-of select="following-sibling::member[1]/name"/>
                        </td>
                        <td>
                            <xsl:value-of select="following-sibling::member[2]/name"/>
                        </td>
                        <td>
                            <xsl:value-of select="following-sibling::member[3]/name"/>
                        </td>
                    </tr>
                </xsl:for-each>
            </table>
        </body>
    </html>
</xsl:template>

</xsl:stylesheet>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-21
    • 2012-05-03
    相关资源
    最近更新 更多