每个内部为每个

时间:2015-05-22 16:45:46

标签: xml xslt for-loop

我需要为每个人做每次为每个“ tym ”获得7次“ jymo ”我尝试解决它但我只得到它每个tym中有一个jmeno,你可以在上面的xslt中看到。谢谢你的帮助

我需要做这样的事情:

                <xsl:for-each select="/futsalovy_turnaj/registrovane_tymy/tym">
                    <table style="width: 900px;background:#83B75E; margin-top: 10px;border:0;cellpadding: 0; cellspacing:0;" cellpadding="0" cellspacing="0" id="#{generate-id(nazev_tymu)}">
                    <tr><td><span style="float: left;padding: 5 10 5 10;font-size: 20px; font-weight: bold;color: white">
                        <xsl:value-of select="nazev_tymu"/>
                    </span><span style="float: right;padding: 5 10 5 10;font-size: 20px; font-weight: bold;color: white">
                        Počet registrovaných hráčů: <xsl:value-of select="pocet_registrovanych_hracu"/>
                    </span>
                    </td></tr>
                    <tr style="background:#9BD273;"><td>
                        <xsl:for-each select="/futsalovy_turnaj/registrovane_tymy/tym">
                            <xsl:value-of select="soupiska_tymu/hrac/jmeno"/>
                        </xsl:for-each>
                    </td>        
                    </tr>
                </table>                        
                </xsl:for-each> 

有一个问题,它不起作用,它只是第一次循环,但第二次不起作用。在上面的xslt中,它仅适用于每个tym中的一个jmeno。

<?xml version="1.0" encoding="UTF-8"?>
<futsalovy_turnaj>
    <zakladni_informace>
        <nazev_turnaje>Futsal turnaj ABC</nazev_turnaje>
        <datum_konani>2015-07-10</datum_konani>
        <startovne mena="czk">300</startovne>
        <misto_konani>
            <adresa>
                <ulice>Německá</ulice>
                <cislo_popisne>8</cislo_popisne>
                <mesto>Praha</mesto>
                <psc>102 00</psc>
            </adresa>
        </misto_konani>
        <ceny_pro_tymy>
            <prvni_misto>Pohár a voucher na 3000Kč</prvni_misto>
            <druhe_misto>diplom</druhe_misto>
            <treti_misto>diplom</treti_misto>
            <ctvrte_misto>diplom</ctvrte_misto>
        </ceny_pro_tymy>
        <komentar>Turnaje se zúčastní čtyřy týmy. Turnaj bude odehrán v jeden den, bude se hrát ve
            dvou halách 2x20 minut, v počtu hráčů 4+1, veřejnost má vstup zdarma, ale kapacita haly
            je pro veřejnost omezená na padesát lidí.</komentar>
    </zakladni_informace>

    <registrovane_tymy>
        <tym id_tymu="1">
            <nazev_tymu>FC Most</nazev_tymu>
            <pocet_registrovanych_hracu>7</pocet_registrovanych_hracu>
            <soupiska_tymu>
                <hrac id_hrace="1">
                    <jmeno>Pavel Křen</jmeno>
                    <datum_narozeni>1991-11-27</datum_narozeni>
                    <pozice>Brankář</pozice>
                </hrac>
                <hrac id_hrace="2">
                    <jmeno>Petr Novák</jmeno>
                    <datum_narozeni>1986-12-11</datum_narozeni>
                    <pozice>Obránce</pozice>
                </hrac>
                <hrac id_hrace="3">
                    <jmeno>Adam Duraj</jmeno>
                    <datum_narozeni>1990-03-27</datum_narozeni>
                    <pozice>Obránce</pozice>
                </hrac>
                <hrac id_hrace="4">
                    <jmeno>Pavel Němec</jmeno>
                    <datum_narozeni>1990-12-06</datum_narozeni>
                    <pozice>Záložník</pozice>
                </hrac>
                <hrac id_hrace="5">
                    <jmeno>Martin Drda</jmeno>
                    <datum_narozeni>1992-06-14</datum_narozeni>
                    <pozice>Záložník</pozice>
                </hrac>
                <hrac id_hrace="6">
                    <jmeno>Václav Košíř</jmeno>
                    <datum_narozeni>1995-12-30</datum_narozeni>
                    <pozice>Útočník</pozice>
                </hrac>
                <hrac id_hrace="7">
                    <jmeno>David Pilík</jmeno>
                    <datum_narozeni>1990-07-14</datum_narozeni>
                    <pozice>Útočník</pozice>
                </hrac>
            </soupiska_tymu>
        </tym>
        <tym id_tymu="2">
            <nazev_tymu>FK Teplice</nazev_tymu>
            <pocet_registrovanych_hracu>7</pocet_registrovanych_hracu>
            <soupiska_tymu>
                <hrac id_hrace="8">
                    <jmeno>Adam Vidle</jmeno>
                    <datum_narozeni>1991-08-15</datum_narozeni>
                    <pozice>Brankář</pozice>
                </hrac>
                <hrac id_hrace="9">
                    <jmeno>Libor Kyril</jmeno>
                    <datum_narozeni>1992-08-21</datum_narozeni>
                    <pozice>Obránce</pozice>
                </hrac>
                <hrac id_hrace="10">
                    <jmeno>David Krk</jmeno>
                    <datum_narozeni>1992-05-11</datum_narozeni>
                    <pozice>Obránce</pozice>
                </hrac>
                <hrac id_hrace="11">
                    <jmeno>Martin Sus</jmeno>
                    <datum_narozeni>1989-03-21</datum_narozeni>
                    <pozice>Obránce</pozice>
                </hrac>
                <hrac id_hrace="12">
                    <jmeno>Ondřej Koník</jmeno>
                    <datum_narozeni>1989-07-26</datum_narozeni>
                    <pozice>Útočník</pozice>
                </hrac>
                <hrac id_hrace="13">
                    <jmeno>Michal Dan</jmeno>
                    <datum_narozeni>1989-11-22</datum_narozeni>
                    <pozice>Útočník</pozice>
                </hrac>
                <hrac id_hrace="14">
                    <jmeno>Henriq Bastos</jmeno>
                    <datum_narozeni>1988-06-11</datum_narozeni>
                    <pozice>Útočník</pozice>
                </hrac>
            </soupiska_tymu>
        </tym>
        <tym id_tymu="3">
            <nazev_tymu>FC Jablotron</nazev_tymu>
            <pocet_registrovanych_hracu>7</pocet_registrovanych_hracu>
            <soupiska_tymu>
                <hrac id_hrace="15">
                    <jmeno>Michal Šibek</jmeno>
                    <datum_narozeni>1988-04-24</datum_narozeni>
                    <pozice>Brankář</pozice>
                </hrac>
                <hrac id_hrace="16">
                    <jmeno>Libor Krsek</jmeno>
                    <datum_narozeni>1987-10-17</datum_narozeni>
                    <pozice>Obránce</pozice>
                </hrac>
                <hrac id_hrace="17">
                    <jmeno>David Kohn</jmeno>
                    <datum_narozeni>1992-06-22</datum_narozeni>
                    <pozice>Obránce</pozice>
                </hrac>
                <hrac id_hrace="18">
                    <jmeno>Sebastian Bohm</jmeno>
                    <datum_narozeni>1986-04-22</datum_narozeni>
                    <pozice>Záložník</pozice>
                </hrac>
                <hrac id_hrace="19">
                    <jmeno>Petr Pavel</jmeno>
                    <datum_narozeni>1985-11-13</datum_narozeni>
                    <pozice>Útočník</pozice>
                </hrac>
                <hrac id_hrace="20">
                    <jmeno>Štěpán Pavlík</jmeno>
                    <datum_narozeni>1986-03-12</datum_narozeni>
                    <pozice>Útočník</pozice>
                </hrac>
                <hrac id_hrace="21">
                    <jmeno>Martin Krmaš</jmeno>
                    <datum_narozeni>1987-06-14</datum_narozeni>
                    <pozice>Útočník</pozice>
                </hrac>
            </soupiska_tymu>
        </tym>
        <tym id_tymu="4">
            <nazev_tymu>FC Admira</nazev_tymu>
            <pocet_registrovanych_hracu>7</pocet_registrovanych_hracu>
            <soupiska_tymu>
                <hrac id_hrace="22">
                    <jmeno>Michal Polák</jmeno>
                    <datum_narozeni>1990-11-24</datum_narozeni>
                    <pozice>Brankář</pozice>
                </hrac>
                <hrac id_hrace="23">
                    <jmeno>Pavel Romel</jmeno>
                    <datum_narozeni>1990-06-12</datum_narozeni>
                    <pozice>Obránce</pozice>
                </hrac>
                <hrac id_hrace="24">
                    <jmeno>Michal Loeb</jmeno>
                    <datum_narozeni>1992-03-20</datum_narozeni>
                    <pozice>Obránce</pozice>
                </hrac>
                <hrac id_hrace="25">
                    <jmeno>Pavel Vorel</jmeno>
                    <datum_narozeni>1992-12-23</datum_narozeni>
                    <pozice>Záložník</pozice>
                </hrac>
                <hrac id_hrace="26">
                    <jmeno>David Jeblý</jmeno>
                    <datum_narozeni>1991-11-12</datum_narozeni>
                    <pozice>Záložník</pozice>
                </hrac>
                <hrac id_hrace="27">
                    <jmeno>Petr Koník</jmeno>
                    <datum_narozeni>1992-09-26</datum_narozeni>
                    <pozice>Útočník</pozice>
                </hrac>
                <hrac id_hrace="28">
                    <jmeno>Romelo Gasto</jmeno>
                    <datum_narozeni>1990-08-14</datum_narozeni>
                    <pozice>Útočník</pozice>
                </hrac>
            </soupiska_tymu>
        </tym>
    </registrovane_tymy>

    <rozpis_zapasu>
        <zapas id_zapasu="1">
            <tymy_v_zapasu>FC Most - FK Teplice</tymy_v_zapasu>
            <cas_vykopu>10:00</cas_vykopu>
            <hala_zapasu>A</hala_zapasu>
        </zapas>
        <zapas id_zapasu="2">
            <tymy_v_zapasu>FC Admira - FC Jablotron</tymy_v_zapasu>
            <cas_vykopu>10:00</cas_vykopu>
            <hala_zapasu>B</hala_zapasu>
        </zapas>
        <zapas id_zapasu="3">
            <tymy_v_zapasu>FC Most - FC Admira</tymy_v_zapasu>
            <cas_vykopu>11:00</cas_vykopu>
            <hala_zapasu>A</hala_zapasu>
        </zapas>
        <zapas id_zapasu="4">
            <tymy_v_zapasu>FK Teplice - FC Jablotron</tymy_v_zapasu>
            <cas_vykopu>11:00</cas_vykopu>
            <hala_zapasu>B</hala_zapasu>
        </zapas>
        <zapas id_zapasu="5">
            <tymy_v_zapasu>FC Most - FC Jablotron</tymy_v_zapasu>
            <cas_vykopu>12:00</cas_vykopu>
            <hala_zapasu>A</hala_zapasu>
        </zapas>
        <zapas id_zapasu="6">
            <tymy_v_zapasu>FK Teplice - FC Admira</tymy_v_zapasu>
            <cas_vykopu>12:00</cas_vykopu>
            <hala_zapasu>B</hala_zapasu>
        </zapas>
    </rozpis_zapasu>

</futsalovy_turnaj>

    <xsl:template match="/">
        <html>
            <body style="background:#BCDAA6; margin:0;">
             <head>
                 <title><xsl:value-of select="futsalovy_turnaj/zakladni_informace/nazev_turnaje"/>
                 </title>
             </head>
                <div style="width: 900px;height: 100%;margin: auto;">
                    <div style="width: 900px;background:#83B75E;">
                        <h1 style="padding: 5 0 5 10;">
                        <font color="white">
                        <xsl:value-of select="futsalovy_turnaj/zakladni_informace/nazev_turnaje"/>
                        </font>
                        </h1>
                    </div>

                    <table style="width: 900px;background:#83B75E; margin-top: 10px;border:0;cellpadding: 0; cellspacing:0;" cellpadding="0" cellspacing="0">
                     <tr><td><p style="padding: 5 10 5 10;font-size: 20px; font-weight: bold;color: white">
                                Zakladní informace:
                    </p>
                    </td></tr>
                    <tr style="background:#9BD273;"><td>
                        <p style="padding: 15 10 5 10;font-size: 14px;color: white;line-height: 20px;">
                            <b>Název turnaje: </b> <xsl:value-of select="futsalovy_turnaj/zakladni_informace/nazev_turnaje"/><br/>
                            <b>Datum: </b> <xsl:value-of select="futsalovy_turnaj/zakladni_informace/datum_konani"/><br/>
                            <b>Startovné: </b> <xsl:value-of select="futsalovy_turnaj/zakladni_informace/startovne"/>&#160;<xsl:value-of select="/futsalovy_turnaj/zakladni_informace/startovne/@mena"/><br/><br/>
                            <b>Místo konání: </b> <xsl:value-of select="futsalovy_turnaj/zakladni_informace/misto_konani/adresa/ulice"/>&#160;<xsl:value-of select="futsalovy_turnaj/zakladni_informace/misto_konani/adresa/cislo_popisne"/>, <xsl:value-of select="futsalovy_turnaj/zakladni_informace/misto_konani/adresa/mesto"/>, <xsl:value-of select="futsalovy_turnaj/zakladni_informace/misto_konani/adresa/psc"/><br/>
                            <b>Ceny za umístění: </b> </p>
                            <ol style="color: white;padding-left: 150px; margin-top:-25px;padding-bottom: 10px;">
                                <li><xsl:value-of select="futsalovy_turnaj/zakladni_informace/ceny_pro_tymy/prvni_misto"/></li>
                                <li><xsl:value-of select="futsalovy_turnaj/zakladni_informace/ceny_pro_tymy/druhe_misto"/></li>
                                <li><xsl:value-of select="futsalovy_turnaj/zakladni_informace/ceny_pro_tymy/treti_misto"/></li>
                                <li><xsl:value-of select="futsalovy_turnaj/zakladni_informace/ceny_pro_tymy/ctvrte_misto"/></li>
                            </ol>
                        <p style="padding: 15 10 5 10;font-size: 14px;color: white;line-height: 20px;"><b>Komentář: </b> <xsl:value-of select="futsalovy_turnaj/zakladni_informace/komentar"/>
                            <br/>
                            <b>Registrované týmy: </b><xsl:for-each select="futsalovy_turnaj/registrovane_tymy/tym"><a href="#{generate-id(nazev_tymu)}"><xsl:value-of select="nazev_tymu"/></a>,&#160;</xsl:for-each></p>
                    </td>        
                    </tr>
                    </table>

                    <xsl:for-each select="/futsalovy_turnaj/registrovane_tymy/tym">
                        <table style="width: 900px;background:#83B75E; margin-top: 10px;border:0;cellpadding: 0; cellspacing:0;" cellpadding="0" cellspacing="0" id="#{generate-id(nazev_tymu)}">
                        <tr><td><span style="float: left;padding: 5 10 5 10;font-size: 20px; font-weight: bold;color: white">
                            <xsl:value-of select="nazev_tymu"/>
                        </span><span style="float: right;padding: 5 10 5 10;font-size: 20px; font-weight: bold;color: white">
                            Počet registrovaných hráčů: <xsl:value-of select="pocet_registrovanych_hracu"/>
                        </span>
                        </td></tr>
                        <tr style="background:#9BD273;"><td>

                                <xsl:value-of select="soupiska_tymu/hrac/jmeno"/>

                        </td>        
                        </tr>
                    </table>                        
                    </xsl:for-each>

                </div>
            </body>
        </html>
    </xsl:template>

1 个答案:

答案 0 :(得分:0)

解决方案:

                    <xsl:for-each select="futsalovy_turnaj/registrovane_tymy/tym">
                        <table style="width: 900px;background:#83B75E; margin-top: 10px;border:0;cellpadding: 0; cellspacing:0;" cellpadding="0" cellspacing="0" id="#{generate-id(nazev_tymu)}">
                        <tr><td><span style="float: left;padding: 5 10 5 10;font-size: 20px; font-weight: bold;color: white">
                            <xsl:value-of select="nazev_tymu"/>
                        </span><span style="float: right;padding: 5 10 5 10;font-size: 20px; font-weight: bold;color: white">
                            Počet registrovaných hráčů: <xsl:value-of select="pocet_registrovanych_hracu"/>
                        </span>
                        </td></tr>
                        <tr style="background:#9BD273;"><td>
                            <xsl:for-each select="soupiska_tymu/hrac">
                            <xsl:value-of select="jmeno"/>
                            </xsl:for-each>
                        </td>        
                        </tr>
                    </table>                        
                    </xsl:for-each>