-2

xslt コードで動的にテーブルを 3 つに分割したいと考えています。100 個のノードがある場合、33 番目の 66 番目のノードにテキストを追加する必要がある場合のように、特定のノードにテキストを追加する構造を教えてください。

私の XSLT コード:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">

<xsl:key name="routes-by-origin" match="/schedules/Routes/org" use="./text()"/>
<xsl:template match="schedules" name="Main">
<html>
<head></head>
<body>
<table>
<tr> <td> Heading </td> </tr>
<table>
<xsl:for-each select="Routes/org[generate-id(.) = generate-id(key('routes-by-origin',.)[1])]">
   <xsl:value-of select="./text()"/>
  <xsl:apply-templates select="//Routes[org/text() = current()/text()]"/>
     </xsl:for-each>
    </table>
   </xsl:template>

上記のテンプレートから呼び出されるテンプレート デザイン

   <xsl:template match="Routes">
  <xsl:value-of select="des/text()"/>
<xsl:variable name="via" select="Via/text()"/>
 <xsl:value-of select="Flgno/text()"/>
</xsl:template>
 </xsl:stylesheet>

入力ドキュメント

<schedules>
    <Routes>
        <org>Agartala</org>
        <des>Bangalore</des>
        <Flgno>SG 872</Flgno>
        <Via>CCU, HYD</Via>
    </Routes>
    <Routes>
        <org>Agartala</org>
        <des>Guwahati</des>
        <Flgno>SG 873</Flgno>
        <Via> BOM </Via>
    </Routes>
    <Routes>
        <org>Agartala</org>
        <des>Hyderabad</des>
        <Flgno>SG 872</Flgno>
        <Via>CCU</Via>
    </Routes>
    <Routes>
        <org>Agartala</org>
        <des>Kolkata</des>
        <Flgno>SG 872</Flgno>
        <Via> - </Via>
    </Routes>
    <Routes>
        <org>Agartala</org>
        <des>Kolkata</des>
        <Flgno>SG 874</Flgno>
        <Via> - </Via>
    </Routes>
    <Routes>
        <org>Agartala</org>
        <des>Mumbai</des>
        <Flgno>SG 874</Flgno>
        <Via>CCU</Via>
    </Routes>
    <Routes>
        <org>Ahmedabad</org>
        <des>Bangalore</des>
        <Flgno>SG 528</Flgno>
        <Symbols> - </Symbols>
        <Via>BOM</Via>
    </Routes>
</schedules>

期待される結果

私の出力は、1 ページの 3 つのテーブルにある必要があります。最初のテーブルでは、最初の 2 レコード 2 番目のテーブル - 次の 2 レコード

2 レコード 2 レコード 3 レコード
<table>
    <table>
        <tr>
            <td>Agartala</td>
            <td>Bangalore</td>
            <td>SG 872</td>
            <td>CCU</td>
        </tr>
        <tr>
            <td> Agartala</td>
            <td>Guwahati</td>
            <td>SG 87</td>
            <td>BOM</td>
        </tr>
    </table>
    <table>
        <tr>
            <td>Agartala</td>
            <td>Hyderabad</td>
            <td>SG 872 </td>
            <td>CCU</td>
        </tr>
        <tr>
            <td>Agartala</td>
            <td>Kolkatta</td>
            <td>SG 872</td>
            <td> - </td>
        </tr>
    </table>
    <table>
        <tr>
            <td> Agartala</td>
            <td>Kolkatta</td>
            <td>SG 874</td>
            <td> - </td>
        </tr>
        <tr>
            <td>Agartala</td>
            <td>Mumbai</td>
            <td>SG 874 </td>
            <td>CCU</td>
        </tr>
        <tr>
            <td>Agartala</td>
            <td>Bangalore</td>
            <td>SG 528</td>
            <td>BOM</td>
        </tr>
    </table>
</table>

注:入力データは動的です

4

1 に答える 1