使用xsl:include后没有显示的xml表数据(用于每个循环)

时间:2014-12-04 18:58:41

标签: xml xslt include

您好我遇到了xsl:import的问题。当我尝试导入一行图片作为页面的标题时,表数据从其他xsl文件中消失。如果我拿走进口就可以了。 任何帮助将非常感谢。 这是我到目前为止的代码。

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:include href="topinclude.xsl"/>

    <xsl:template match="allIreland">
        <html>
        <head>
        <link rel="stylesheet" type="text/css" href="dublin.css"/>
        </head>
        <body>



            <div id="firstYear">

            <table border="1">
            <caption>Dublin V Longford</caption>

                <tr>
                    <th>NUMBER</th>
                    <th>NAME</th>
                    <th>AGE</th>
                    <th>POSITION</th>
                    <th>CLUB</th>
                </tr>
                <xsl:for-each match="allIreland/year[@id='1976']/team/player[@id='2b'or@id='2b'or@id='2c'or@id='2d'or@id='2e'or@id='2g'or@id='2h'or@id='2j'or@id='2k'or@id='2l'or@id='2o'or@id='2q'or@id='2r'or@id='2s'or@id='2t'or@id='2u']">
                <tr> 
                    <td><xsl:value-of select="number"/></td>
                    <td><xsl:value-of select="name"/></td>
                    <td><xsl:value-of select="age"/></td>
                    <td><xsl:value-of select="position"/></td>
                    <td><xsl:value-of select="club"/></td>


                </tr>

           </table>

               <table border="1">
            <caption>Dublin V Laois</caption>

                <tr>
                    <th>NUMBER</th>
                    <th>NAME</th>
                    <th>AGE</th>
                    <th>POSITION</th>
                    <th>CLUB</th>
                </tr>
                <xsl:for-each select="allIreland/year[@id='1976']/team/player[@id='2a'or@id='2c'or@id='2d'or@id='2e'or@id='2q'or@id='2f'or@id='2g'or@id='2k'or@id='2l'or@id='2o'or@id='2p'or@id='2r'or@id='2s'or@id='2t'or@id='2u']">
                <tr>
                    <td><xsl:value-of select="number"/></td>
                    <td><xsl:value-of select="name"/></td>
                    <td><xsl:value-of select="age"/></td>
                    <td><xsl:value-of select="position"/></td>
                    <td><xsl:value-of select="club"/></td>
                </tr>
            </xsl:for-each>
           </table>
               <table border="1">
            <caption>Dublin V Meath</caption>

                <tr>
                    <th>NUMBER</th>
                    <th>NAME</th>
                    <th>AGE</th>
                    <th>POSITION</th>
                    <th>CLUB</th>
                </tr>
                <xsl:for-each select="allIreland/year[@id='1976']/team/player[@id='2a'or@id='2c'or@id='2d'or@id='2e'or@id='2g'or@id='2q'or@id='2i'or@id='2k'or@id='2m'or@id='2o'or@id='2p'or@id='2r'or@id='2s'or@id='2t'or@id='2u']">
                <tr>
                    <td><xsl:value-of select="number"/></td>
                    <td><xsl:value-of select="name"/></td>
                    <td><xsl:value-of select="age"/></td>
                    <td><xsl:value-of select="position"/></td>
                    <td><xsl:value-of select="club"/></td>
                </tr>
            </xsl:for-each>
           </table>
               <table border="1">
            <caption>Dublin V Galway</caption>

                <tr>
                    <th>NUMBER</th>
                    <th>NAME</th>
                    <th>AGE</th>
                    <th>POSITION</th>
                    <th>CLUB</th>
                </tr>
                <xsl:for-each select="allIreland/year[@id='1976']/team/player[@id='2a'or@id='2c'or@id='2d'or@id='2e'or@id='2f'or@id='2h'or@id='2j'or@id='2i'or@id='2k'or@id='2l'or@id='2o'or@id='2p'or@id='2r'or@id='2t'or@id='2v']">
                <tr>
                    <td><xsl:value-of select="number"/></td>
                    <td><xsl:value-of select="name"/></td>
                    <td><xsl:value-of select="age"/></td>
                    <td><xsl:value-of select="position"/></td>
                    <td><xsl:value-of select="club"/></td>
                </tr>
            </xsl:for-each>
           </table>
               <table border="1">
            <caption>Dublin V Kerry</caption>

                <tr>
                    <th>NUMBER</th>
                    <th>NAME</th>
                    <th>AGE</th>
                    <th>POSITION</th>
                    <th>CLUB</th>
                </tr>
                <xsl:for-each select="allIreland/year[@id='1976']/team/player[@id='2a'or@id='2c'or@id='2d'or@id='2e'or@id='2f'or@id='2q'or@id='2i'or@id='2k'or@id='2l'or@id='2l'or@id='2o'or@id='2p'or@id='2r'or@id='2s'or@id='2t'or@id='2v']">
                <tr>
                    <td><xsl:value-of select="number"/></td>
                    <td><xsl:value-of select="name"/></td>
                    <td><xsl:value-of select="age"/></td>
                    <td><xsl:value-of select="position"/></td>
                    <td><xsl:value-of select="club"/></td>
                </tr>
            </xsl:for-each>
           </table>
           </div>
          </body>
        </html>
      </xsl:template>
    </xsl:stylesheet> 


    // and here is the include header

<?xml version="1.0" encoding="UTF-8" ?>
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

    <xsl:template match="/" priority="10">
    <html>
    <head><title>Header</title></head>
    <body>
        <div id="header">
    <img src="gaa1.jpg"/>
    <img src="gaa2.jpg"/>
      <img src="gaa1.jpg"/>
      <img src="gaa2.jpg"/>
      <img src="gaa1.jpg"/>
      </div>

    <xsl:apply-templates/>
</body>
</html>
</xsl:template>
</xsl:transform>

1 个答案:

答案 0 :(得分:0)

一个问题是XSLT--主模板和包含的topinclude.xsl - 生成带有html开始/结束标记,标题,正文等的完整HTML页面,因此结果将是带有标题的html页面来自topinclude.xsl的<div>包含由<body>中的包含模板生成的第二个html页面。
由于topinclude.xsl包含在顶部,您应该将主模板的<head>(因为dublin.css包含)移至topinclude.xsl并移除<html>,{{1来自包含模板的{}和<body>标记。