我想不出一个非常简单的事情!
我正在尝试编写一个用于转换定义列表的模板。
<list type="gloss">
<head>Slovníček pojmů</head>
<label xml:lang="cs">Pojem</label>
<item>Dojem!</item>
<label xml:lang="cs">Stavba</label>
<item>Stavení</item>
</list>
当前模板:
<xsl:template match="tei:list[@type='gloss']">
<div class="glossary">
<p>
<b>
<xsl:apply-templates select="tei:head"/>
</b>
</p>
<dl>
<xsl:choose>
<xsl:when test="tei:label">
<dt>
<xsl:apply-templates select="tei:label"/>
</dt>
</xsl:when>
<xsl:otherwise>
<dd>
<xsl:apply-templates select="tei:item"/>
</dd>
</xsl:otherwise>
</xsl:choose>
</dl>
</div>
</xsl:template>
没有任何效果。我尝试过for-each
循环,这会因为将模板应用于原子值而产生问题。外部模板(在这个模板之外)通常head
以错误的方式呈现标签(两次)。有什么简单的方法可以做到这一点吗?
上面的模板抛出错误,提到模板的嵌套调用太多(样式表可能正在循环)。