我想要從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