xml - 两列表式布局 (XSLT)

标签 xml xslt html-table

考虑以下 XML 代码:

<tip>
    <number>1</number>
    <number>2</number>
    <number>3</number>
    <number>4</number>
    <number>5</number>
</tip>

我想要这样的 HTML 输出:

<table>
    <tr>
        <td><number>1</number></td>
        <td><number>2</number></td>
    </tr>
    <tr>
        <td><number>3</number></td>
        <td><number>4</number></td>
    </tr>
    <tr>
        <td><number>5</number></td>
    </tr>
</table>

我是XSL新手,希望有人能帮忙 我和这个。

最佳答案

您可以使用mod(取模)来完成此操作。

XML 输入

<tip>
    <number>1</number>
    <number>2</number>
    <number>3</number>
    <number>4</number>
    <number>5</number>
</tip>

XSLT 1.0

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output indent="yes"/>
    <xsl:strip-space elements="*"/>

    <xsl:template match="tip">
        <table>
            <xsl:apply-templates select="number[not(position() mod 2 = 0)]"/>
        </table>
    </xsl:template>

    <xsl:template match="number">
        <tr>
            <td><xsl:value-of select="."/></td>
            <td><xsl:value-of select="(following-sibling::number)[1]"/></td>
        </tr>
    </xsl:template>

</xsl:stylesheet>

输出

<table>
   <tr>
      <td>1</td>
      <td>2</td>
   </tr>
   <tr>
      <td>3</td>
      <td>4</td>
   </tr>
   <tr>
      <td>5</td>
      <td/>
   </tr>
</table>

关于xml - 两列表式布局 (XSLT),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19698005/

相关文章:

html - 省略 </TD> 和 </TR> 标签是否安全?

java - 将命名空间设置为 @XmlRootElement 时解码失败且没有错误

jquery - JqG​​rid 以子网格和单个 XML 文件作为输入

java - 使用 Java 和 Saxon 发现可选 XML 属性

php - 使用 XSLT 将 XML 转换为 SQL

javascript - 重新格式化 HTML 表格

C# : xml serialization of nodes with cyclic links

xml - xsl :fo don't split word into 2 lines

xslt - 日期转换 YYYYMMDD 到 YYYY-MM-DD

css - 如何使用不同的单元格创建自定义表格?