-2

让我们看看,

<item>    
        <name>A</name>
    </item>
      <item>
<name>B</name></item>
     <item>
     <name>C</name></item>
    <item>       
        <name>D</name></item>
     <item>
     <name>E</name></item>
    <item>
     <name>F</name></item>
     <item>
     <name>G</name></item>

现在我正在寻找 XSLT 转换之类的;

A           B
C           D
E           F
G           H

我希望在 html 页面的两列中显示“名称”。谢谢

4

1 回答 1

1

尝试将位置除以 2 并查看是否有余数...

XML 输入

<items>
    <item>
        <name>A</name>
    </item>
    <item>
        <name>B</name>
    </item>
    <item>
        <name>C</name>
    </item>
    <item>
        <name>D</name>
    </item>
    <item>
        <name>E</name>
    </item>
    <item>
        <name>F</name>
    </item>
    <item>
        <name>G</name>
    </item>
</items>

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="/*">
        <html>
            <table>
                <xsl:apply-templates select="item[position() mod 2 = 1]"/>
            </table>
        </html>
    </xsl:template>

    <xsl:template match="item[position() mod 2 = 1]">
        <tr>
            <td><xsl:value-of select="name"/></td>
            <td><xsl:value-of select="following-sibling::item[1]/name"/></td>
        </tr>
    </xsl:template>

</xsl:stylesheet>

HTML 输出

<html>
   <table>
      <tr>
         <td>A</td>
         <td>B</td>
      </tr>
      <tr>
         <td>C</td>
         <td>D</td>
      </tr>
      <tr>
         <td>E</td>
         <td>F</td>
      </tr>
      <tr>
         <td>G</td>
         <td></td>
      </tr>
   </table>
</html>
于 2012-11-26T07:28:17.947 回答