我無法弄清楚一件非常簡單的事情!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'匹配的模板,以便我們重現錯誤。謝謝! –