XSLT1.0唯一元素
我试图使用前面的同级从组中选择唯一的元素 以folliwng xml为例XSLT1.0唯一元素,xslt,Xslt,我试图使用前面的同级从组中选择唯一的元素 以folliwng xml为例 <items> <item> <options> <option> <option-data> <data-ab>TEST1</date-qualifier> <date>20101026</date> </option-data> <opti
<items>
<item>
<options>
<option>
<option-data>
<data-ab>TEST1</date-qualifier>
<date>20101026</date>
</option-data>
<option-data>
<data-ab>TEST2</date-qualifier>
<date>20101026</date>
</option-data>
</option>
<option type="2">
<option-data>
<data-ab>TEST1</date-qualifier>
<date>20101026</date>
</option-data>
</option>
</options>
</item>
<item>
<options>
<option>
<option-data>
<data-ab>TEST1</date-qualifier>
<date>20101026</date>
</option-data>
</option>
<option type="2">
<option-data>
<data-ab>TEST1</date-qualifier>
<date>20101026</date>
</option-data>
</option>
</options>
</item>
</items>
我希望能够选择唯一选项日期元素distinct is by date和data-ab。我只希望为每个项目选择唯一的选项data/date,即not by option。我使用了前面同级的组合,但当它返回到父级时,我只能保证在需要时,每个选项的日期都是唯一的项目
为此绞尽脑汁数小时,却找不出一个优雅的解决方案
问候,,
安迪这一转变:
当应用于所提供的XML文档时,请更正以实现良好的格式:
<items>
<item>
<options>
<option>
<option-data>
<data-ab>TEST1</data-ab>
<date>20101026</date>
</option-data>
<option-data>
<data-ab>TEST2</data-ab>
<date>20101026</date>
</option-data>
</option>
<option type="2">
<option-data>
<data-ab>TEST1</data-ab>
<date>20101026</date>
</option-data>
</option>
</options>
</item>
<item>
<options>
<option>
<option-data>
<data-ab>TEST1</data-ab>
<date>20101026</date>
</option-data>
</option>
<option type="2">
<option-data>
<data-ab>TEST1</data-ab>
<date>20101026</date>
</option-data>
</option>
</options>
</item>
</items>
生成所需的正确结果:
注意:最有效的XSLT1.0 Muenchian分组方法用于三个连接键。TEST1 20101026 TEST2 20101026 TEST1 20101026 TEST1 20101026 TEST1 20101026我认为最好使用Muenchian分组。。。像这样的复合键:这不是一个完整的答案,但我必须回家吃晚饭-我想另一个有助于澄清的问题是,您需要如何查询/访问这些独特的元素:所有项目的所有元素的节点集?b给定一个数据子体,其唯一选项是什么?c还有别的吗?当你说选择唯一选项数据元素时,你的意思是想省略所有不唯一的数据元素,还是想选择其中一个,即选择不同的数据元素?好问题,+1。有关完整、高效和事实上的标准解决方案,请参见我的答案:你的问题不清楚。首先,我希望能够选择唯一选项date元素distinct is by date and data ab:在您的示例中,没有唯一的元素,所有元素都具有相同的键。第二个问题我只想为每个项目选择唯一的选项data/date,即不按选项:此处相同,所有项目都有相同的键。你想把他们分组吗?期望的输出是什么?+1回答得好。不同的选项数据元素,不一定是唯一的,IIUC。@LarsH:谢谢。我可能也被否决了,因为我是0?
<items>
<item>
<options>
<option>
<option-data>
<data-ab>TEST1</data-ab>
<date>20101026</date>
</option-data>
<option-data>
<data-ab>TEST2</data-ab>
<date>20101026</date>
</option-data>
</option>
<option type="2">
<option-data>
<data-ab>TEST1</data-ab>
<date>20101026</date>
</option-data>
</option>
</options>
</item>
<item>
<options>
<option>
<option-data>
<data-ab>TEST1</data-ab>
<date>20101026</date>
</option-data>
</option>
<option type="2">
<option-data>
<data-ab>TEST1</data-ab>
<date>20101026</date>
</option-data>
</option>
</options>
</item>
</items>
Unique option-data elements for item: 1
<option-data><data-ab>TEST1</data-ab><date>20101026</date></option-data>
<option-data><data-ab>TEST2</data-ab><date>20101026</date></option-data>
Unique option-data elements for item: 2
<option-data><data-ab>TEST1</data-ab><date>20101026</date></option-data>