我想要从XML转换为结合了一些元素的文本,但避免了输出中的重复。 的XML将是类似的东西:XSLT:组合元素不重复
<A>
<B>
<param1>value0</param1>
<param2>value1</param2>
</B>
<B>
<param1>value2</param1>
<param2>value3</param2>
</B>
<C>
<param3>valueC1</param3>
<D>
<param4>value0</param4>
<param5>value4</param5>
</D>
<D>
<param4>value0</param4>
<param5>value5</param5>
</D>
<D>
<param4>value2</param4>
<param5>value6</param5>
</D>
</C>
<C>
<param3>valueC2</param3>
<D>
<param4>value0</param4>
<param5>value5</param5>
</D>
</C>
</A>
和输出:
OBJECT: param1=value0, param2=value1, param3=valueC1, param4=value0;
OBJECT: param1=value2, param2=value3, param3=valueC1, param4=value2;
OBJECT: param1=value0, param2=value1, param3=valueC2, param4=value0;
注:
- 对于每个d对象,请使用D.乙对象比赛param4 = B.param1
- 如果有两个或多个D对象放入同一个C并且与相同的B匹配,则只打印其中的一个(在本例中为noth因为它会产生与第一个D对象相同的行)
- 如果有两个D对象与相同的B匹配,但是分配到不同的C,则同时打印两个(输出示例中的第三行)
我找了一些类似的问题,但我找不到任何相同的情况。
我想这可以通过使用键来完成,但它太复杂了。
谢谢!
Regards, Ale。
PS:对不起,我的英语。
哪里了'param4 = value1'第二排从何而来?那应该是'价值2'吗? – 2013-02-13 11:17:45
是的,这是值2,对不起。 – user2067923 2013-02-13 11:37:52