xslテンプレートを使用して、xmlドキュメントを元の要素階層を持つ別のxmlドキュメントに変換する方法を知りたいです。また、新しく生成されたXMLの要素にいくつかの属性を追加したいと思います。
私の元のXMLファイルは次のようになります。
<shop>
<product>
<cookie ID="001">
<price>2</price>
</cookie>
</product>
<product>
<bread ID="002">
<price>5</price>
</bread>
</product>
<product>
<milk ID="003">
<price>2</price>
</milk>
</product>
</shop>
これを次のXMLに変換したいと思います。
<newXML>
<newElement>
<newElement ID="001">
<newElement price="2"/>
</newElement>
</newElement>
<newElement>
<newElement ID="002">
<newElement price="5"/>
</newElement>
</newElement>
<newElement>
<newElement ID="003">
<newElement price="2"/>
</newElement>
</newElement>
</newXML>
これを行うための良い方法は何でしょうか?これは、テンプレートで再帰を使用して実行できますか、それともより良い方法がありますか?私は次のロジックを使用しようとしています:
- 要素を作成するテンプレートを作成する
- 現在の要素IDが存在する場合はそれを読み取り、newElementに配置します
- 現在の要素に子がある場合は、このテンプレートをその要素に適用します(ある種の再帰)
多くの試みにもかかわらず、私はこの仕事をすることができませんでした。あなたの助けをいただければ幸いです!