この入力がある場合:
<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>
要素の「属性」を組み合わせる必要があります。2 つ以上の属性が存在する場合、属性の子が以前に存在しなかった場合は、子を新しい情報として保持しますが、以前に存在した場合は単に最新の値を使用します。
XSLT 1.0 または 2.0 でこのような変換を行うにはどうすればよいですか?ご協力ありがとうございます。
ジョン