【问题标题】:XSLT not giving outputXSLT 不提供输出
【发布时间】:2015-04-27 08:35:18
【问题描述】:

无法在 Internet Explorer 中查看 XSLT 的输出。

cdcatalog.xml:

<?xml version="1.0" encoding="UTF-8"?>
<catalog>
    <cd>
        <title>Empire Burlesque</title>
        <artist>Bob Dylan</artist>
        <country>USA</country>
        <company>Columbia</company>
        <price>10.90</price>
        <year>1985</year>
    </cd>
    <cd>
        <title>Hide your heart</title>
        <artist>Bonnie Tyler</artist>
        <country>UK</country>
        <company>CBS Records</company>
        <price>9.90</price>
        <year>1988</year>
    </cd>
    <cd>
        <title>Greatest Hits</title>
        <artist>Dolly Parton</artist>
        <country>USA</country>
        <company>RCA</company>
        <price>9.90</price>
        <year>1982</year>
    </cd>
    <cd>
        <title>Still got the blues</title>
        <artist>Gary Moore</artist>
        <country>UK</country>
        <company>Virgin records</company>
        <price>10.20</price>
        <year>1990</year>
    </cd>
    <cd>
        <title>Eros</title>
        <artist>Eros Ramazzotti</artist>
        <country>EU</country>
        <company>BMG</company>
        <price>9.90</price>
        <year>1997</year>
    </cd>
    <cd>
        <title>One night only</title>
        <artist>Bee Gees</artist>
        <country>UK</country>
        <company>Polydor</company>
        <price>10.90</price>
        <year>1998</year>
    </cd>
    <cd>
        <title>Sylvias Mother</title>
        <artist>Dr.Hook</artist>
        <country>UK</country>
        <company>CBS</company>
        <price>8.10</price>
        <year>1973</year>
    </cd>
    <cd>
        <title>Maggie May</title>
        <artist>Rod Stewart</artist>
        <country>UK</country>
        <company>Pickwick</company>
        <price>8.50</price>
        <year>1990</year>
    </cd>
    <cd>
        <title>Romanza</title>
        <artist>Andrea Bocelli</artist>
        <country>EU</country>
        <company>Polydor</company>
        <price>10.80</price>
        <year>1996</year>
    </cd>
    <cd>
        <title>When a man loves a woman</title>
        <artist>Percy Sledge</artist>
        <country>USA</country>
        <company>Atlantic</company>
        <price>8.70</price>
        <year>1987</year>
    </cd>
    <cd>
        <title>Black angel</title>
        <artist>Savage Rose</artist>
        <country>EU</country>
        <company>Mega</company>
        <price>10.90</price>
        <year>1995</year>
    </cd>
    <cd>
        <title>1999 Grammy Nominees</title>
        <artist>Many</artist>
        <country>USA</country>
        <company>Grammy</company>
        <price>10.20</price>
        <year>1999</year>
    </cd>
    <cd>
        <title>For the good times</title>
        <artist>Kenny Rogers</artist>
        <country>UK</country>
        <company>Mucik Master</company>
        <price>8.70</price>
        <year>1995</year>
    </cd>
    <cd>
        <title>Big Willie style</title>
        <artist>Will Smith</artist>
        <country>USA</country>
        <company>Columbia</company>
        <price>9.90</price>
        <year>1997</year>
    </cd>
    <cd>
        <title>Tupelo Honey</title>
        <artist>Van Morrison</artist>
        <country>UK</country>
        <company>Polydor</company>
        <price>8.20</price>
        <year>1971</year>
    </cd>
    <cd>
        <title>Soulsville</title>
        <artist>Jorn Hoel</artist>
        <country>Norway</country>
        <company>WEA</company>
        <price>7.90</price>
        <year>1996</year>
    </cd>
    <cd>
        <title>The very best of</title>
        <artist>Cat Stevens</artist>
        <country>UK</country>
        <company>Island</company>
        <price>8.90</price>
        <year>1990</year>
    </cd>
    <cd>
        <title>Stop</title>
        <artist>Sam Brown</artist>
        <country>UK</country>
        <company>A and M</company>
        <price>8.90</price>
        <year>1988</year>
    </cd>
    <cd>
        <title>Bridge of Spies</title>
        <artist>T`Pau</artist>
        <country>UK</country>
        <company>Siren</company>
        <price>7.90</price>
        <year>1987</year>
    </cd>
    <cd>
        <title>Private Dancer</title>
        <artist>Tina Turner</artist>
        <country>UK</country>
        <company>Capitol</company>
        <price>8.90</price>
        <year>1983</year>
    </cd>
    <cd>
        <title>Midt om natten</title>
        <artist>Kim Larsen</artist>
        <country>EU</country>
        <company>Medley</company>
        <price>7.80</price>
        <year>1983</year>
    </cd>
    <cd>
        <title>Pavarotti Gala Concert</title>
        <artist>Luciano Pavarotti</artist>
        <country>UK</country>
        <company>DECCA</company>
        <price>9.90</price>
        <year>1991</year>
    </cd>
    <cd>
        <title>The dock of the bay</title>
        <artist>Otis Redding</artist>
        <country>USA</country>
        <company>Atlantic</company>
        <price>7.90</price>
        <year>1987</year>
    </cd>
    <cd>
        <title>Picture book</title>
        <artist>Simply Red</artist>
        <country>EU</country>
        <company>Elektra</company>
        <price>7.20</price>
        <year>1985</year>
    </cd>
    <cd>
        <title>Red</title>
        <artist>The Communards</artist>
        <country>UK</country>
        <company>London</company>
        <price>7.80</price>
        <year>1987</year>
    </cd>
    <cd>
        <title>Unchain my heart</title>
        <artist>Joe Cocker</artist>
        <country>USA</country>
        <company>EMI</company>
        <price>8.20</price>
        <year>1987</year>
    </cd>
</catalog>

cdcatalog.xsl:

<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="/">
        <html>
            <body>
                <h2>My CD Collection</h2>
                <table border="1">
                    <tr bgcolor="#9acd32">
                        <th>Title</th>
                        <th>Artist</th>
                    </tr>
                    <tr>
                        <td>.</td>
                        <td>.</td>
                    </tr>
                </table>
            </body>
        </html>
    </xsl:template>
</xsl:stylesheet>

我将这两个文件保存在一个文件夹中,然后右键单击 cdcatalog.xsl 并单击在 internet explorer 上打开。但我无法获得输出。请帮忙。 我尝试了命名空间建议,但仍然没有得到输出。

【问题讨论】:

    标签: html xml xslt xslt-1.0


    【解决方案1】:

    您是否记得将 XSL 样式表链接到您的 XML 文档?

    试试这个:

    <?xml version="1.0" encoding="UTF-8"?>
    <?xml-stylesheet type="text/xsl" href="cdcatalog.xsl"?>
    <catalog>
      <cd>
        <title>Empire Burlesque</title>
        <artist>Bob Dylan</artist>
        <country>USA</country>
        <company>Columbia</company>
        <price>10.90</price>
        <year>1985</year>
      </cd>
    .
    .
    </catalog>
    

    假设您使用的浏览器是 XSLT 兼容的,当您打开带有上述更改的 XML 文件时,您应该会看到 HTML 输出。

    【讨论】:

    • 感谢回复...我尝试运行 xml 文件,但我的浏览器没有按要求提供输出...Explorer (9) 我正在使用,我猜它应该支持 xml。 ...请建议我是否需要做一些设置以使浏览器变得紧凑
    • 你目前得到什么输出?请检查您的 XML 格式是否正确(即每个打开的标签都正确关闭)。
    • 我得到的输出和 xml 文件一样.....Joe Cocker美国.......EMI8.201987目录>
    • 我尝试在 ? > 但它又不是 xsl 输出,我得到的输出像 Empire Burlesque Bob Dylan USA Columbia 10.90 1985 隐藏你的心 Bonnie Tyler 英国 CBS 唱片 9.90 1988 最热门歌曲 Dolly Parton 美国 RCA 9.90 1982 仍然有蓝调 Gary Moore UK Virgin记录 10.20 1990 Eros Eros Ramazzotti EU BMG 9.90 1997 只有一晚 Bee Gees UK Polydor 10.90 1998 Sylvias Mother Dr.Hook UK CBS 8.10 1973 Maggie
    • @pri 你显然还不知道 Stackoverflow 是如何工作的。请take a tour 并找出how to ask。 cmets 中永远不应该提及代码,而且到目前为止您提供的信息无法让我们识别问题。
    【解决方案2】:

    我将这两个文件保存在一个文件夹中,然后右键单击 cdcatalog.xsl 并单击在 Internet Explorer 上打开。

    当直接在浏览器中转换时,不是您应该打开的 XSLT 样式表文件。而是打开 XML 文档。正如 Tim 已经提到的,这需要在您的 XML 文档中链接到样式表的 reference

    否则,您的转换会产生以下输出,我认为这不是很有意义:

    <html>
       <body>
          <h2>My CD Collection</h2>
          <table border="1">
             <tr bgcolor="#9acd32">
                <th>Title</th>
                <th>Artist</th>
             </tr>
             <tr>
                <td>.</td>
                <td>.</td>
             </tr>
          </table>
       </body>
    </html>
    

    你是不是想写类似的东西

    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    
    <xsl:output method="html" indent="yes"/>
    <xsl:strip-space elements="*"/>
    
    <xsl:template match="/">
      <html>
      <body>
        <h2>My CD Collection</h2>
        <table border="1">
          <tr bgcolor="#9acd32">
            <th>Title</th>
            <th>Artist</th>
          </tr>
          <xsl:apply-templates/>
        </table>
      </body>
      </html>
    </xsl:template>
    
    <xsl:template match="cd">
        <tr>
            <td>
                <xsl:value-of select="title"/>
            </td>
            <td>
                <xsl:value-of select="artist"/>
            </td>
        </tr>
    </xsl:template>
    
    </xsl:stylesheet>
    

    输出将是

    <html>
       <body>
          <h2>My CD Collection</h2>
          <table border="1">
             <tr bgcolor="#9acd32">
                <th>Title</th>
                <th>Artist</th>
             </tr>
             <tr>
                <td>Empire Burlesque</td>
                <td>Bob Dylan</td>
             </tr>
             <tr>
                <td>Hide your heart</td>
                <td>Bonnie Tyler</td>
             </tr>
             <tr>
                <td>Greatest Hits</td>
                <td>Dolly Parton</td>
             </tr>
             <tr>
                <td>Still got the blues</td>
                <td>Gary Moore</td>
             </tr>
             <tr>
                <td>Eros</td>
                <td>Eros Ramazzotti</td>
             </tr>
             <tr>
                <td>One night only</td>
                <td>Bee Gees</td>
             </tr>
             <tr>
                <td>Sylvias Mother</td>
                <td>Dr.Hook</td>
             </tr>
             <tr>
                <td>Maggie May</td>
                <td>Rod Stewart</td>
             </tr>
             <tr>
                <td>Romanza</td>
                <td>Andrea Bocelli</td>
             </tr>
             <tr>
                <td>When a man loves a woman</td>
                <td>Percy Sledge</td>
             </tr>
             <tr>
                <td>Black angel</td>
                <td>Savage Rose</td>
             </tr>
             <tr>
                <td>1999 Grammy Nominees</td>
                <td>Many</td>
             </tr>
             <tr>
                <td>For the good times</td>
                <td>Kenny Rogers</td>
             </tr>
             <tr>
                <td>Big Willie style</td>
                <td>Will Smith</td>
             </tr>
             <tr>
                <td>Tupelo Honey</td>
                <td>Van Morrison</td>
             </tr>
             <tr>
                <td>Soulsville</td>
                <td>Jorn Hoel</td>
             </tr>
             <tr>
                <td>The very best of</td>
                <td>Cat Stevens</td>
             </tr>
             <tr>
                <td>Stop</td>
                <td>Sam Brown</td>
             </tr>
             <tr>
                <td>Bridge of Spies</td>
                <td>T`Pau</td>
             </tr>
             <tr>
                <td>Private Dancer</td>
                <td>Tina Turner</td>
             </tr>
             <tr>
                <td>Midt om natten</td>
                <td>Kim Larsen</td>
             </tr>
             <tr>
                <td>Pavarotti Gala Concert</td>
                <td>Luciano Pavarotti</td>
             </tr>
             <tr>
                <td>The dock of the bay</td>
                <td>Otis Redding</td>
             </tr>
             <tr>
                <td>Picture book</td>
                <td>Simply Red</td>
             </tr>
             <tr>
                <td>Red</td>
                <td>The Communards</td>
             </tr>
             <tr>
                <td>Unchain my heart</td>
                <td>Joe Cocker</td>
             </tr>
          </table>
       </body>
    </html>
    

    【讨论】:

    • 他的代码直接来自 W3Schools 在线示例 q.v。 this link如果你想看。
    • @TimBiegeleisen 谢谢蒂姆,我知道 ;)。不幸的是,我们收到了很多个使用来自 w3schools 的代码或 XML 的问题。
    • @pri 请看这里:stackoverflow.com/help/someone-answers。如果您的问题得到解决,您应该接受其中一个答案(不一定是我的)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-18
    • 2012-01-22
    • 2015-10-22
    相关资源
    最近更新 更多