该页面没有显示我错过的电影

时间:2011-07-30 17:01:15

标签: xml xslt

这是我的XSL表

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:key name="movie" match="movie" use="." /> 
<xsl:template match="/">
<html>
<head>
<title>Top American Comedies</title> 
<link href="comedy.css" rel="stylesheet" type="text/css" /> 
</head>
<body>
<h2>The Top American Comedy Films</h2> 
<p>Number of Ballots:162</p> 
<table>
<tr>
<th>Rank</th> 
<th>Movie</th> 
<th>Votes</th> 
<th>%</th> 
<xsl:for-each select="movie">
<tr>
<td>position</td> 
<td>movie</td> 
<td class="right" /> 
<td class="right" /> 
</tr>
</xsl:for-each>
</tr>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>

这是我的XML代码

<?xml-stylesheet type="text/xsl" href="comtxt.xsl" ?>
<poll>
<ballot id="b1">
<movie>A FISH CALLED WANDA (1988)</movie>
<movie>ADAM'S RIB (1949)</movie>
<movie>ANNIE HALL (1977)</movie>
<movie>BEING THERE (1979)</movie>
<movie>BORN YESTERDAY (1950)</movie>
 <movie>CITY LIGHTS (1931)</movie>
<movie>DR. STRANGELOVE (1964)</movie>
<movie>GOOD MORNING, VIETNAM (1987)</movie>
<movie>HIS GIRL FRIDAY (1940)</movie>
<movie>M*A*S*H (1970)</movie>
<movie>MOONSTRUCK (1987)</movie>
<movie>NATIONAL LAMPOON'S ANIMAL HOUSE (1978)</movie>
<movie>SILVER STREAK (1976)</movie>
<movie>SOME LIKE IT HOT (1959)</movie>
<movie>THE GENERAL (1927)</movie>
<movie>THE GRADUATE (1967)</movie>
<movie>THE ODD COUPLE (1968)</movie>
<movie>THE SEVEN YEAR ITCH (1955)</movie>
<movie>TO BE OR NOT TO BE (1942)</movie>
<movie>WHAT'S UP, DOC? (1972)</movie>
</ballot>    
<ballot id="b162">
<movie>A DAY AT THE RACES (1937)</movie>
<movie>ABBOTT AND COSTELLO MEET FRANKENSTEIN (1948)</movie>
<movie>AMERICAN GRAFFITI (1973)</movie>
<movie>BANANAS (1971)</movie>
<movie>BLAZING SADDLES (1974)</movie>
<movie>CADDYSHACK (1980)</movie>
<movie>DR. STRANGELOVE (1964)</movie>
<movie>GHOSTBUSTERS (1984)</movie>
<movie>HIS GIRL FRIDAY (1940)</movie>
<movie>IT'S A MAD MAD MAD MAD WORLD (1963)</movie>
<movie>MODERN TIMES (1936)</movie>
<movie>NATIONAL LAMPOON'S ANIMAL HOUSE (1978)</movie>
<movie>SHE DONE HIM WRONG (1933)</movie>
<movie>SOME LIKE IT HOT (1959)</movie>
<movie>THE AWFUL TRUTH (1937)</movie>
<movie>THE GRADUATE (1967)</movie>
<movie>THE ODD COUPLE (1968)</movie>
<movie>THE PRODUCERS (1968)</movie>
<movie>THIS IS SPINAL TAP (1984)</movie>
<movie>TOPPER (1937)</movie>
</ballot>
</poll>

帮助会很棒。我已经做了一段时间了,现在我不知道我错了什么。

1 个答案:

答案 0 :(得分:1)

首先,您没有使用什么规则解释转换应该产生什么。你也没有表现出预期的正确输出。

一些观察

  1. 您的代码中未使用<xsl:key>指令,可以安全删除。

  2. 这显然是错误的<xsl:for-each select="movie">。文档节点没有movie子节点,因此select属性中的XPath表达式不会选择任何内容 - 因此<xsl:for-each>中的代码只执行0次。

    < / LI>

    这是一次猜测,再次:

    <xsl:stylesheet version="1.0"
     xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    
     <xsl:template match="/">
      <html>
        <head>
         <title>Top American Comedies</title>
         <link href="comedy.css" rel="stylesheet" type="text/css" />
        </head>
        <body>
            <h2>The Top American Comedy Films</h2>
            <p>Number of Ballots:162</p>
            <table>
                <tr>
                    <th>Rank</th>
                    <th>Movie</th>
                    <th>Votes</th>
                    <th>%</th>
                    <xsl:for-each select="/*/*/movie">
                        <tr>
                            <td><xsl:value-of select="position()"/></td>
                            <td><xsl:value-of select="."/></td>
                            <td class="right" />
                            <td class="right" />
                        </tr>
                    </xsl:for-each>
                </tr>
            </table>
       </body>
      </html>
     </xsl:template>
    </xsl:stylesheet>
    
相关问题