在标题后显示XSLT样式表表?

时间:2014-01-20 15:22:06

标签: html xml xslt

编辑:该表正在运行,但它会立即显示在我的标题右侧,而不是像我希望的那样显示在下面。我尝试过两种不同的浏览器(Firefox和Chrome),它仍然没有显示在下面。我有什么可以做的吗?

XML

<bbgame>
  <gametracker gameid="1288244"></gametracker>
  <venue gameid="GAME11"
           visid="MSU" visname="MISSOURI STATE"
           homeid="LOU" homename="LOUISVILLE"
           date="12/17/2013" location="KFC Yum! Center, Louisville, KY"
           time="9:05PM" attend="21335" schednote="" start="" end="" duration=""
           leaguegame="N" neutralgame="N" postseason="N">
</venue>
</bbame>

XSLT

    My Code so Far.... <xsl:template match="//bbgame"> 
    <html>
    <body>
    <h1>Official Basketball Box Score -- Game Totals</h1>
    <table border="1">
    <tr>
        <td><xsl:value-of select="//venue/@visname"/> vs. </td>
        <td><xsl:value-of select="//venue/@homename"/></td>
    </tr>
    </table>    
    </body>
    </html>
    </xsl:template>
    </xsl:stylesheet>

这就是我所看到的输出。 官方篮球比赛得分 - 比赛总分MISOURI状态对阵路易斯维尔

1 个答案:

答案 0 :(得分:0)

您的XML输入格式不正确。

  • 您过早关闭gametracker元素。
  • </bbame>当然应该阅读</bbgame>

这些错误通常由XSLT处理器和大多数浏览器检测到。

使用此输入:

<bbgame>
  <gametracker gameid="1288244">
  <venue gameid="GAME11"
           visid="MSU" visname="MISSOURI STATE"
           homeid="LOU" homename="LOUISVILLE"
           date="12/17/2013" location="KFC Yum! Center, Louisville, KY"
           time="9:05PM" attend="21335" schednote="" start="" end="" duration=""
           leaguegame="N" neutralgame="N" postseason="N">
</venue>
</gametracker>
</bbgame>

您的转换工作正常,您会得到以下输出:

<?xml version="1.0" encoding="UTF-8"?>
<html>
   <body>
      <h1>Official Basketball Box Score -- Game Totals</h1>
      <table border="1">
         <tr>
            <td>MISSOURI STATE vs. </td>
            <td>LOUISVILLE</td>
         </tr>
      </table>
   </body>
</html>

除了回答你的问题之外,我觉得有责任注意你的XSLT代码可以做一些改进。例如,避免使用//匹配元素,因为这会检索元素,而不管它们在树中的位置。