浏览器显示原始XML而不应用XSLT

时间:2014-01-11 12:06:22

标签: xml xslt

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="transformacja2.xsl"?>
<czolgi xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <czolg kraj_pochodzenia="ZSRR" typ="sredni">
        <nazwa>T-34-85</nazwa>
        <zaloga>
            <zalogant>Dowódca</zalogant>
            <zalogant>Kierowca</zalogant>
            <zalogant>Celowniczy</zalogant>
            <zalogant>Ładowniczy</zalogant>
            <zalogant>Strzelec-radiotelegrafista</zalogant>
        </zaloga>
        <uzbrojenie>
            <bron kaliber="85.0"> Armata czołgowa wz. 1944 ZiS-S-53 </bron>
            <bron kaliber="7.62"> 2 Karabiny maszynowe DTM </bron>
        </uzbrojenie>
        <pancerz jednostka="mm">
            <kadlub>45/45/45</kadlub>
            <wieza>90/75/52</wieza>
        </pancerz>
        <info_dodatkowe>
            <silnik moc="500KM">1 silnik wysokoprężny, 12-cylindrowy W-2-34</silnik>
            <rok_wprowadzenia>1944</rok_wprowadzenia>
        </info_dodatkowe>
        <linki>
            <link adres="http://pl.wikipedia.org/wiki/T-34/85"> Wikipedia PL</link>
            <link adres="http://en.wikipedia.org/wiki/T-34/85"> Wikipedia EN</link>
        </linki>
    </czolg>
.
.
.
</czolgi>

我在使用以下XSL文件转换此XML文件时遇到问题:

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

    <xsl:template match="/">
    <html>
        <head>
            <title>Czołgi: Transformacja 2</title>
        </head>
        <body>
            <h2>Czołgi</h2><br/>
            <xsl:apply-templates select="czolgi/czolg">
                <xsl:sort select="info_dodatkowe/rok_wprowadzenia"/>
            </xsl:apply-templates>
        </body>
    </html>
</xsl:template>

<xsl:template match="czolg">
    <xsl:number value="position()" format="1"/>. Nazwa: <xsl:value-of select="nazwa"/><br/>
    Kraj pochodzenia: <xsl:value-of select="@kraj_pochodzenia"/>
    Typ:        <xsl:choose>
                    <xsl:when test="@typ='lekki'">Lekki</xsl:when>
                    <xsl:when test="@typ='sredni'">Średni</xsl:when>
                    <xsl:when test="@typ='ciezki'">Ciężki</xsl:when>
                </xsl:choose><br/>
    Rok wprowadzenia: <xsl:value-of select="info_dodatkowe/rok_wprowadzenia"/><br/>

    <br/>
</xsl:template>

</xsl:stylesheet>

它应该打印如下:
纳兹瓦:有事 Kraj pochodzenia:某事 类型:东西
Rok wprowadzenia:事情

每个 czolg 元素

。但是,在浏览器中查看时,会显示整个XML文件中的原始文本。我似乎无法自己找到问题。有人能告诉我我做错了吗?

1 个答案:

答案 0 :(得分:0)

我在http://home.arcor.de/martin.honnen/xslt/test2014011101.xml上尝试过您的示例,它似乎与Firefox,IE和Opera一起使用。我不确定你为什么不能得到你想要的结果。检查浏览器的错误控制台,确保它没有显示任何错误。还要确保XML是已发布的,并且根或其他元素上没有xmlns="...",因为XSLT中的路径不会选择输入元素。