按部分值对子元素进行分组
我有这个 XML 文件:
<Elements>
<Element name="A.B.C.x">
<Child>...</Child>
<Child>...</Child>
<Child>...</Child>
</Element>
<Element name="A.B.C.y">
<Child>...</Child>
<Child>...</Child>
</Element>
<Element name="A.D.E.y">
<Child>...</Child>
</Element>
<Element name="A.D.E.z">
<Child>...</Child>
<Child>...</Child>
<Child>...</Child>
</Element>
</Elements>
我需要创建 XSL 才能获得此结果:
<Elements>
<Element name="A.B.C">
<LastToken name="x" childCount="3" />
<LastToken name="y" childCount="2" />
</Element>
<Element name="A.D.E">
<LastToken name="y" childCount="1" />
<LastToken name="z" childCount="3" />
</Element>
</Elements>
我仅限于没有扩展的 XSL 1.0,并且我不知道如何实现该结果。
任何帮助表示赞赏。
提前致谢。
编辑:随着一些答案的出现,我看到我必须澄清我的问题/任务:Element
节点的 name
属性中的标记不限于一个字符。 “name”属性的示例值可以是 This.Is.Grouping.Target.AndThisIsGroupChild
I have this XML file:
<Elements>
<Element name="A.B.C.x">
<Child>...</Child>
<Child>...</Child>
<Child>...</Child>
</Element>
<Element name="A.B.C.y">
<Child>...</Child>
<Child>...</Child>
</Element>
<Element name="A.D.E.y">
<Child>...</Child>
</Element>
<Element name="A.D.E.z">
<Child>...</Child>
<Child>...</Child>
<Child>...</Child>
</Element>
</Elements>
I need to create XSL to get this result:
<Elements>
<Element name="A.B.C">
<LastToken name="x" childCount="3" />
<LastToken name="y" childCount="2" />
</Element>
<Element name="A.D.E">
<LastToken name="y" childCount="1" />
<LastToken name="z" childCount="3" />
</Element>
</Elements>
I am limited to XSL 1.0 with no extensions and I cannot figure out how to achieve the result.
Any help appreciated.
Thanks in advance.
EDIT: As some answers came in I saw I have to clarify my question/task:
Tokens in name
attribute of Element
node are not limited to one character. Sample value of 'name' attribute could be This.Is.Grouping.Target.AndThisIsGroupChild
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
此 XSLT 1.0 转换(绝对没有限制):
应用于提供的 XML 文档时:
生成所需的正确结果:
This XSLT 1.0 transformation (absolutely no limitations):
when applied on the provided XML document:
the wanted, correct result is produced:
只是为了好玩,没有扩展的通用 XSLT 1.0 解决方案:
输出:
Just for fun, a general XSLT 1.0 solution without extensions:
Output:
XSLT 2.0 解决方案(绝对没有任何限制):
应用于提供的 XML 文档时:
生成所需的正确结果:
An XSLT 2.0 solution (absolutely no limitations assumed):
when applied on the provided XML document:
the wanted, correct result is produced:
使用慕尼黑分组:
Use Muenchian grouping: