次のようなxmlドキュメントがあります。
<Catalogs>
<Catalog>
<Code>x</Code>
<Name>Ox</Name>
<Categories>
<Category>
<Id>9245</Id>
<Name>a</Name>
<Category>
<Id>9247</Id>
<Name>x</Name>
</Category>
</Category>
<Category>
<Id>9250</Id>
<Name>x</Name>
<Category>
<Id>9252</Id>
<Name>x</Name>
</Category>
<Category>
<Id>9258</Id>
<Name>x</Name>
<Category>
<Id>9260</Id>
<Name>x</Name>
</Category>
<Category>
<Id>9261</Id>
<Name>x</Name>
</Category>
<Category>
<Id>9261</Id>
<Name>x</Name>
</Category>
</Category>
</Category>
<Category>
<Id>9251</Id>
<Name>x</Name>
<Category>
<Id>9253</Id>
<Name>x</Name>
</Category>
</Category>
</Categories>
</Catalog>
</Catalogs>
カテゴリ タグの各サブセットをコレクション タグ (カテゴリ) にラップしたいと思います。ここでの問題は、これが再帰ツリーであり、ツリーの深さが不明であることです。
これに xslt 変換を使用しようとしましたが、まだ成功していません。私の試み
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="Category">
<Categories><xsl:apply-templates select="Category"/></Categories>
</xsl:template>
</xsl:stylesheet>
すべての子を空の Categories タグに置き換えるだけです。
サンプル出力は次のようになります。
<Catalogs>
<Catalog>
<Code>x</Code>
<Name>Ox</Name>
<Categories>
<Category>
<Id>9245</Id>
<Name>a</Name>
<Categories>
<Category>
<Id>9247</Id>
<Name>x</Name>
</Category>
</Categories>
</Category>
<Category>
<Id>9250</Id>
<Name>x</Name>
<Categories>
<Category>
<Id>9252</Id>
<Name>x</Name>
</Category>
<Category>
<Id>9258</Id>
<Name>x</Name>
<Categories>
<Category>
<Id>9260</Id>
<Name>x</Name>
</Category>
<Category>
<Id>9261</Id>
<Name>x</Name>
</Category>
<Category>
<Id>9261</Id>
<Name>x</Name>
</Category>
</Categories>
</Category>
</Categories>
</Category>
<Category>
<Id>9251</Id>
<Name>x</Name>
<Categories>
<Category>
<Id>9253</Id>
<Name>x</Name>
</Category>
</Categories>
</Category>
</Categories>
</Catalog>
</Catalogs>
任意のポインタ(または完全なソリューション)をいただければ幸いです。