0

我查询并按字母顺序排序一堆 XML 元素,我将模板应用到这些元素上,以生成按字母顺序排列的列表。我想用这个初始值给节点加上相同的初始值:

A
Abe
Amel
Andrew
B
Bobby
Benny
...

前兄弟轴相对于文档,而不是节点集。我能做些什么?

4

1 回答 1

0

你在这里描述的是一个分组问题。在 xslt 1 中处理分组的标准方法是“Muenchian”方法。这里有一个非常详细的解释:http: //www.jenitennison.com/xslt/grouping/muenchian.html

基本思想是您创建一个指定要分组的键。在这种情况下,您将使用他们姓名的第一个字母创建一个匹配该人的节点的键。

然后你编写一个循环遍历这些人,并检查每个人是否是第一个匹配给定键(第一个字母)的人。如果是,那么您放入一个分组分隔符。

然后你有一个嵌套循环(或应用模板),它有一个匹配规则,只选择第一个字母的节点。您可以使用 xslt:sort 对它们进行排序,然后输出它们。

如果您可以发布实际 XML 的示例(而不仅仅是您想要的输出),那么我可以为您编写一个示例样式表来解析它。

于 2010-10-09T00:14:48.877 回答