-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ページの2列に「名前」を表示したいと思っています。ありがとう

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 に答える