如果我有这个输入:
<root>
<library id="L1">
<shelf1 id="1">
<book id="1" category="science">
<attributes>
<year>2000</year>
</attributes>
<attributes>
<author>xx</author>
<year>2010</year>
<isbn>001</isbn>
</attributes>
<attributes>
<author>yy</author>
<publisher>zz</publisher>
<isbn>002</isbn>
</attributes>
<other>y</other>
</book>
<book id="2" category="science">
...
</book>
</shelf1>
<shelf2>...</shelf2>
</library>
</root>
预期输出:
<root>
<library id="L1">
<shelf1 id="1">
<book id="1" category="science">
<attributes>
<author>yy</author>
<publisher>zz</publisher>
<isbn>002</isbn>
<year>2010</year>
</attributes>
<other>y</other>
</book>
<book id="2" category="science">
...
</book>
</shelf1>
<shelf2>...</shelf2>
</library>
</root>
我需要将元素“属性”组合在一起。如果存在两个或多个属性,当属性的子属性以前不存在时,我们将子属性保留为新信息,但如果它以前存在,我们只需使用最新值。
如何在 XSLT 1.0 或 2.0 中进行这种转换?非常感谢您的帮助。
约翰