它应解析XML-File中的内容表,并输出带有有序List的HTML。 我试过类似下面的东西,但它显示重复的条目(第一个标题两次)和一个空的li标签,我无法弄清楚如何删除它们。
我的XML:
<?xml version="1.0" encoding="UTF-8" ?>
<document>
<section>
<title>Section One</title>
</section>
<section>
<title>Section Two</title>
<section>
<title>Section Two.One</title>
</section>
<section>
<title>Section Two.Two</title>
<section>
<title>Section Two.Two.One</title>
</section>
</section>
</section>
<section>
<title>Section Three</title>
</section>
</document>
My XSLT:
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="document">
<html>
<head>
</head>
<body>
<ol>
<xsl:apply-templates/>
</ol>
</body>
</html>
</xsl:template>
<xsl:template match="section">
<li>
<xsl:value-of select="title" />
<xsl:if test="section">
<ol>
<li>
<xsl:apply-templates select="title" />
<xsl:if test="section">
<li>
<xsl:apply-templates select="section" />
</li>
</xsl:if>
</li>
</ol>
</xsl:if>
</li>
</xsl:template>
</xsl:stylesheet>
输出:
这可能是分组问题吗?我有顺序元素,我想嵌套它没有空li标签。非常感谢任何想法。
答案 0 :(得分:1)
我相信你让它变得比它需要的更复杂。试试这种方式:
<xsl:template match="/document">
<html>
<head>
</head>
<body>
<ol>
<xsl:apply-templates select="section" />
</ol>
</body>
</html>
</xsl:template>
<xsl:template match="section">
<li>
<xsl:value-of select="title" />
<xsl:if test="section">
<ol>
<xsl:apply-templates select="section" />
</ol>
</xsl:if>
</li>
</xsl:template>