我使用XSLT1.0(处理器无法处理2。0),并且具有试图基的XML结构的输出的问题:XSL按元素分组xml
<行>
<顺序>
<文本>一些顺序文本1
< /文本>
< /顺序>
</row>
<row>
<付款>
<文本>某些付款文本1
< /文本>
< /付款>
< /行>
<行>
<顺序>
<文本>一些顺序文本2
< /文本>
< /顺序>
< /行>
<行>
<接触>
<文本>一些联系方式1
</text >
< /接触>
< /行>
<行>
<接触>
<文本>一些联系方式2
< /文本>
< /接触>
< /行>
今天我们选择所有的行,并呼吁每个应用模板(每种类型都有自己的模板,写出它的身体),创建等的输出:
订单:有的为了text1的
订单:一些秩序文本2
付款方式:一些付款的text1
联系方式:一些接触点评详情
联系方式:一些接触details2
但我想是(在XSLT 1。0)到组输出,使:
订购
- 某种秩序的text1
- 一些命令文本2
付款
- 一些支付的text1
联系
- 一些接触点评详情
- 一些接触details2
显然还有很多其他的元素类型比秩序,支付和这里所涉及的外在因素的名称,以便选择接触不是一个解决方案。
编辑
泰,一些伟大的答案,如果我有一个结构会如何Muenchian分组的解变化说
<customers>
<person>
<row>....</row> (row is same as above)
<row>....</row>
</person>
<person>
<row>....</row>
<row>....</row>
<row>....</row>
</person>
那么关键:
<xsl:key name="type" match="row/*" use="local-name()"/>
会选择所有横跨所有人的行,这不是我想要的。感谢您的好评。
可能重复的[如何通过在XSLT元素应用组( http://stackoverflow.com/questions/2146648/how-to-apply-group-by-on-xslt-elements) – annakata 2010-10-12 11:35:49
很多,很多,很多*,倍。 – annakata 2010-10-12 11:36:08
@ user408346:请提出一个新问题。不要向这个问题添加新的问题。 – 2010-10-13 12:40:44