1

我想从 xml 文件创建一个按字母顺序排列的列表。在 Xml 文件中,我有很多<index-elements>应该是列表的一部分,我只需通过//index-elements. 我还想<name>在正确的位置(按字母顺序排序)将另一种元素添加到同一个列表中。通常我将<xsl:for-each-group group-by="..." select="...">循环与<xsl:sort lang="lang-code">函数结合使用,但我不能选择多个节点集。这是我第一次需要在一个排序结果中添加两个不同的元素。目前我不知道如何解决这个问题。

XML

<section>
    <child>
        <index-elements>Gamma</index-elements>
    </child>
    <child>
        <index-elements>Zeta</index-elements>
    </child>
</section>

<section>
    <child>
        <index-elements>Alpha</index-elements>
    </child>
    <child>
        <new-element>
            <index-elements>Delta</index-elements>
        </new-element>            
    </child>
</section>    

<section>
    <some-element>
        <name>Epsilon</name>
    </some-element>
    <some-element>
        <name>Beta</name>
    </some-element>
</section>  

预期产出

Alpha Beta Gamma Delta Epsilon Zeta

4

1 回答 1

1

我通过为所有人扩展 for-each 序列来解决它,//index-elements并且//name. 我不知道对 select 参数使用两个 x-path 搜索结果。

<xsl:for-each select="//index-elements, //name"> <xsl:sort lang="{$langCode}"/> <xsl:value-of select="current()/text()"/> </xsl:for-each>

于 2018-07-12T18:27:30.177 回答