如何在XSLT中显示从一个元素到两列的数据?

如何在XSLT中显示从一个元素到两列的数据?,xslt,Xslt,让我想想 <item> <name>A</name> </item> <item> <name>B</name></item> <item> <name>C</name></item> <item> <name>D</nam

让我想想

<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>
我希望在html页面的两列中显示“name”。
谢谢

尝试将位置除以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>
<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>

A.
B
C
D
E
F
G
XSLT1.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输出

<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>
<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>

A.
B
C
D
E
F
G

我想在两列中查看这些数据。这不是很精确。HTML输出?这些列应该是什么样的?比如AB>DE>FG>谢谢……投票结束,看起来像是一个家庭作业问题……与其说是
not(position()mod 2=0)
,不如说是
position()mod 2=1
。毕竟,
position()mod 2
只有两个可能的值。另外,为了更好地支持旧浏览器,当
后面的兄弟::name[1]
为空时,输出
&x160。当一个单元格真的是空的时候,旧浏览器的表现非常糟糕。@SeanB.Durkin-关于
position()mod 2
的观点很好。请接受我在这里所做的更改。问候。@ROOMY-我已经编辑了我的答案,以匹配您在问题中对XML输入所做的修改。