xslt生成xhtml 1.0严格

时间:2013-04-04 14:25:13

标签: xml xslt xhtml markup xhtml-1.0-strict

我生成xhtml但验证器(http://validator.w3.org/check) 给我错误“文档类型不允许元素”li“here;缺少”ul“,”ol“start-tag”

代码是:

<xsl:template match="/">
        <html xmlns="http://www.w3.org/1999/xhtml">
            <head>
                <title>Catalogue</title>
            </head>
            <body>
                <h1>Producers</h1>
                <div style="margin:1em;background-color:lightgray;padding:0.5em">
                        <strong>Quick links to producers</strong>
                        <xsl:call-template name="producer" />
                </div>
                <xsl:apply-templates select="//producer[@id]" />
                <h1>Products</h1>
                <xsl:apply-templates select="//product[@id]" />
            </body>
        </html>
    </xsl:template>

    <xsl:template name="producer">
        <xsl:for-each select="//producer[@id]">
           <li>
              <a href="#{@id}"> 
                <b>
                    <xsl:value-of select="name"/>
                </b>
                <xsl:text>  (</xsl:text><xsl:value-of select="@id"/><xsl:text>) </xsl:text>
              </a>
          </li>
        </xsl:for-each>
    </xsl:template>

    <xsl:template match="producer[@id]">
        <a name="{@id}"/>
        <div style="border: thin solid gray;margin:1em;padding:0.5em;">
            <h2>
                <xsl:value-of select="name"/>
            </h2>
                <xsl:text>
                    <xsl:value-of select="description"/>
                </xsl:text>
                <xsl:apply-templates select="//producer[@id=current()/@id]/products"/>            
        </div>
    </xsl:template>

知道如何生成有效的xhtml吗? 感谢。

1 个答案:

答案 0 :(得分:1)

列出列表项目列表。