我从另一个关于如何创建有序列表(XSLT 1.0 - Create a Unique, Ordered List)和@Mads Hansen答案的线索中获得灵感。我希望做同样的事情,但包括法国人强调的角色。它们现在出现在输出文档的最后。
这是输入的一部分:
<?xml version="1.0" encoding="utf-8"?>
<div type="paragraphe">
<w lemma="aprés">aprés</w>
<w lemma="chevalier">cheualier</w>
<w lemma="à">a</w>
<w lemma="ébahir">esbahis</w>
<w lemma="clore">clos</w>
</div>
这是从其他帖子修改的xslt:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" encoding="UTF-8" indent="yes"/>
<xsl:key name="lemma-word" match="//w" use="concat(@lemma, ' - ', .)" />
<xsl:template match="/">
<xsl:for-each select="//w[generate-id()
= generate-id(key('lemma-word',concat(@lemma, ' - ', .))[1])]">
<xsl:sort select="@lemma"/>
<xsl:sort select="//w"/>
<li>
<xsl:value-of select="concat(@lemma, ' - ', .)"/>
</li>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
输出:
<?xml version="1.0" encoding="UTF-8"?>
<li>aprés - aprés</li>
<li>chevalier - cheualier</li>
<li>clore - clos</li>
<li>à - a</li>
<li>ébahir - esbahis</li>
我怎样才能使用法语重点字母订购列表: A(AA)BCDE(EEE)FGHI(I)jklmno(O)pqrstu(UU)VWXYZ
强调的字母不能像现在那样出现在输出的末尾,而是出现在非强调字母旁边(就好像它们没有被强调一样)。
输出中的所需顺序:
<?xml version="1.0" encoding="UTF-8"?>
<li>à - a</li>
<li>aprés - aprés</li>
<li>chevalier - cheualier</li>
<li>clore - clos</li>
<li>ébahir - esbahis</li>
我希望自己明确表示,否则请不要犹豫。
感谢您的帮助或建议。 / Micha
答案 0 :(得分:0)
使用<xsl:sort select="@lemma" lang="fr"/>
选择适合法语的排序规则(排序顺序)。没有绝对的保证你的XSLT处理器会做正确的事情(或做你想做的事情,可能会有所不同),但对于流行的处理器来说,这是一个相当不错的机会。