从一个XML文档生成多个HTML文件的问题

时间:2019-05-30 09:32:18

标签: xml xslt

我正在尝试通过“ auto”(汽车)元素将一个xml文档分成更多的html文件。我还希望有一个主要的html文档,其中将列出这些文件的链接。但是它只会生成带有链接的主文件,而不会生成其他任何文件。

我不知道为什么它不起作用。似乎一切对我来说都没事。

<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:au="http://example.com/autobazar" xmlns:xs="http://www.w3.org/2001/XMLSchema"
    exclude-result-prefixes="xs au" version="2.0">

    <xsl:output method="html" encoding="UTF-8"/>
    <xsl:output method="html" encoding="UTF-8" name="html"/>

    <xsl:template match="/">
        <xsl:text disable-output-escaping="yes">
            &lt;!DOCTYPE html&gt;
        </xsl:text>
        <html lang="cs">
            <head>
                <title>Autobazar</title>
            </head>
            <body>
                <xsl:apply-templates mode="hlavniSeznam"/>
            </body>
        </html>
    </xsl:template>

    <xsl:template match="au:autobazar" mode="hlavniSeznam">
        <h1>Autobazar</h1>
        <ul>
            <xsl:for-each select="au:auto">
                <xsl:apply-templates select="." mode="hlavniSeznam"/>
            </xsl:for-each>
        </ul>
    </xsl:template>

    <xsl:template match="au:auto" mode="hlavniSeznam">
        <li>
            <a href="auto{generate-id()}.html">
                <xsl:value-of select="au:znacka"/> - <xsl:value-of select="au:model"/>
            </a>
        </li>
    </xsl:template>

    <xsl:template match="au:auto" mode="popisky">
        <xsl:for-each select="//au:autobazar/au:auto">
            <xsl:result-document href="auto{generate-id()}.html">
                <xsl:text disable-output-escaping="yes">
                  &lt;!DOCTYPE html&gt;
                 </xsl:text>
                <html>
                    <head>
                        <title>
                            <xsl:value-of select="au:znacka"/>
                            <xsl:value-of select="au:model"/>
                        </title>
                    </head>
                    <body>
                        <h1>
                            <xsl:value-of select="au:znacka"/>
                            <xsl:value-of select="au:model"/>
                        </h1>
                    </body>
                </html>
            </xsl:result-document>
        </xsl:for-each>
    </xsl:template>


</xsl:stylesheet>
<?xml version="1.0" encoding="UTF-8"?>

<autobazar xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://example.com/autobazar autobazar.xsd"
    xmlns="http://example.com/autobazar">

    <auto vin="JTJHF10U310224808">
        <znacka>Škoda</znacka>
        <model>Octavia RS</model>
        <generace>Mk3</generace>
        <motor>
            <objem jednotka="ccm">1998</objem>
            <palivo>benzin</palivo>
            <vykon jednotka="kw">160</vykon>
            <valce>4</valce>
            <tocivyMoment jednotka="nm">320</tocivyMoment>
            <spotreba jednotka="l/100km">12</spotreba>
            <prevodovka>automatická</prevodovka>
        </motor>
        <pohon>přední</pohon>
        <zrychleni jednotka="s">8.6</zrychleni>
        <maximalniRychlost jednotka="km/h">246</maximalniRychlost>
        <karoserie>combi</karoserie>
        <zavazadlovyProstor jednotka="l">560</zavazadlovyProstor>
        <pohotovostniHmostnost jednotka="kg">1454</pohotovostniHmostnost>
        <lak>
            <barva>modrá</barva>
            <typLaku>metalíza</typLaku>
        </lak>
        <cena jednotka="kč">450000</cena>
        <najeto jednotka="km">87000</najeto>
        <rokVyroby>2015</rokVyroby>
        <registraceInzeratu>2018-01-26</registraceInzeratu>
        <fotka src="skodars3.jpg"/>
    </auto>

    <auto vin="5XYKUDA19BG186713">
        <znacka>Hyundai</znacka>
        <model>i30N</model>
        <generace>Mk3</generace>
        <motor>
            <objem jednotka="ccm">1998</objem>
            <palivo>benzin</palivo>
            <vykon jednotka="kw">202</vykon>
            <valce>4</valce>
            <tocivyMoment jednotka="nm">353</tocivyMoment>
            <spotreba jednotka="l/100km">9.1</spotreba>
            <prevodovka>manuální</prevodovka>
        </motor>
        <pohon>přední</pohon>
        <zrychleni jednotka="s">6.1</zrychleni>
        <maximalniRychlost jednotka="km/h">250</maximalniRychlost>
        <karoserie>hatchback</karoserie>
        <zavazadlovyProstor jednotka="l">436</zavazadlovyProstor>
        <pohotovostniHmostnost jednotka="kg">1584</pohotovostniHmostnost>
        <lak>
            <barva>modrá</barva>
            <typLaku>metalíza</typLaku>
        </lak>
        <cena jednotka="kč">679000</cena>
        <najeto jednotka="km">5000</najeto>
        <rokVyroby>2018</rokVyroby>
        <registraceInzeratu>2019-01-21</registraceInzeratu>
        <fotka src="i30n.jpg"/>
    </auto>


</autobazar>

它应该为每个“自动”文件和一个带有链接列表的主文件生成文件。它只会生成主文件,而不会生成其他任何文件。

谢谢,抱歉英语不好

0 个答案:

没有答案