我无法弄清楚一件非常简单的事情!XSLT - 转换清单(TEI)
我想写一个模板来转换定义列表。
<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
标记(两次)。有没有简单的方法如何做到这一点?
上面的模板抛出错误,提到模板的嵌套调用过多(样式表可能循环)。
你能表现出更多的XML的和XSLT好吗?你的XSLT引用了命名空间前缀'tei',但是你没有显示这个命名空间的声明。另外,你的XML根本没有任何命名空间,所以它不会被'tei:list'匹配。你也应该显示与'head','label'和'item'匹配的模板,以便我们重现错误。谢谢! –