xmlのファイルが3つあります
<step>
<Products>
<Product UserTypeID="Country">
<Name>Cyprus</Name>
<Product UserTypeID="Resort">
<Name>Argaka</Name>
<Product UserTypeID="Property">
<Name>Villa Tester</Name>
</Product>
</Product>
<Product UserTypeID="Resort">
<Name>Coral Bay</Name>
<Product UserTypeID="Property">
<Name>1</Name>
</Product>
<Product UserTypeID="Property">
<Name>2</Name>
</Product>
</Product>
</Product>
<Product UserTypeID="Country">
<Name>Greece</Name>
<Product UserTypeID="Region">
<Name>Corfu</Name>
<Product UserTypeID="Resort">
<Name>Aghios Stefanos</Name>
<Product UserTypeID="Property">
<Name>Villa Joanna</Name>
</Product>
<Product UserTypeID="Property">
<Name>Villa Eleonas</Name>
</Product>
</Product>
<Product UserTypeID="Resort">
<Name>Kassiopi</Name>
<Product UserTypeID="Property">
<Name>Villa 2</Name>
</Product>
</Product>
</Product>
</Product>
</Products>
<step>
<Products>
<Product UserTypeID="Country">
<Name>Cyprus</Name>
<Product UserTypeID="Resort">
<Name>Argaka</Name>
<Product UserTypeID="Property">
<Name>Villa Jaime</Name>
</Product>
</Product>
</Product>
<Product UserTypeID="Country">
<Name>Greece</Name>
<Product UserTypeID="Region">
<Name>Corfu</Name>
<Product UserTypeID="Resort">
<Name>Acharavi</Name>
<Product UserTypeID="Property">
<Name>Villa 1</Name>
</Product>
<Product UserTypeID="Property">
<Name>Villa 2</Name>
</Product>
</Product>
<Product UserTypeID="Resort">
<Name>Gouvia</Name>
<Product UserTypeID="Property">
<Name>Villa De Bono</Name>
</Product>
</Product>
<Product UserTypeID="Resort">
<Name>Kassiopi</Name>
<Product UserTypeID="Property">
<Name>Villa 1</Name>
</Product>
</Product>
</Product>
</Product>
</Products>
<step>
<Products>
<Product UserTypeID="Country">
<Name>Cyprus</Name>
<Product UserTypeID="Resort">
<Name>Aghia Marina</Name>
<Product UserTypeID="Property">
<Name>Villa Aghia Marina</Name>
</Product>
</Product>
<Product UserTypeID="Resort">
<Name>Coral Bay</Name>
<Product UserTypeID="Property">
<Name>Ascos Coral Villas</Name>
</Product>
<Product UserTypeID="Property">
<Name>Coral Villa</Name>
</Product>
<Product UserTypeID="Property">
<Name>Lella Villas</Name>
</Product>
</Product>
</Product>
<Product UserTypeID="Country">
<Name>Greece</Name>
<Product UserTypeID="Region">
<Name>Corfu</Name>
<Product UserTypeID="Resort">
<Name>Acharavi</Name>
<Product UserTypeID="Property">
<Name>Villa Angelos</Name>
</Product>
<Product UserTypeID="Property">
<Name>Villa Eleonas</Name>
</Product>
</Product>
<Product UserTypeID="Resort">
<Name>Aghios Stefanos</Name>
<Product UserTypeID="Property">
<Name>Villa Joanna</Name>
</Product>
<Product UserTypeID="Property">
<Name>Villa Eleonas</Name>
</Product>
</Product>
<Product UserTypeID="Resort">
<Name>Kassiopi</Name>
<Product UserTypeID="Property">
<Name>Villa Imerolia</Name>
</Product>
<Product UserTypeID="Property">
<Name>Test Property</Name>
</Product>
</Product>
</Product>
</Product>
</Products>
各ファイルには同じ製品(./nameによる)がありますが、サブ製品(./nameによる)が異なります。製品/名前ごとに1つの製品を含む1つのツリーに連結し、同じルールのすべてのサブ製品を含める必要があります。 1つの構造を出力できます。
xsltメソッドが見つかりました。これにより、以下のようなノードセットが作成されます。
<xsl:variable name="step-output">
<xsl:for-each select="/index/file">
<xsl:copy-of select="document(.)" />
</xsl:for-each>
</xsl:variable>
<xsl:variable name="step-products" select="exsl:node-set($step-output)//Products" />
しかし、これは、他のテンプレートを作成すると、製品/名前で3つの製品が作成されます。つまり、キプロスが3回表示されます。
誰かが私が求めていることを行う方法を知っていますか?私の結果は次のようになる必要があります
<step>
<Products>
<Product UserTypeID="Country">
<Name>Cyprus</Name>
<Product UserTypeID="Resort">
<Name>Aghia Marina</Name>
<Product UserTypeID="Property">
<Name>Villa Aghia Marina</Name>
</Product>
</Product>
<Product UserTypeID="Resort">
<Name>Argaka</Name>
<Product UserTypeID="Property">
<Name>Villa Jaime</Name>
</Product>
<Product UserTypeID="Property">
<Name>Villa Tester</Name>
</Product>
</Product>
<Product UserTypeID="Resort">
<Name>Coral Bay</Name>
<Product UserTypeID="Property">
<Name>Ascos Coral Villas</Name>
</Product>
<Product UserTypeID="Property">
<Name>Coral Villa</Name>
</Product>
<Product UserTypeID="Property">
<Name>Lella Villas</Name>
</Product>
<Product UserTypeID="Property">
<Name>1</Name>
</Product>
<Product UserTypeID="Property">
<Name>2</Name>
</Product>
</Product>
</Product>
<Product UserTypeID="Country">
<Name>Greece</Name>
<Product UserTypeID="Region">
<Name>Corfu</Name>
<Product UserTypeID="Resort">
<Name>Acharavi</Name>
<Product UserTypeID="Property">
<Name>Villa Angelos</Name>
</Product>
<Product UserTypeID="Property">
<Name>Villa Eleonas</Name>
</Product>
<Product UserTypeID="Property">
<Name>Villa 1</Name>
</Product>
<Product UserTypeID="Property">
<Name>Villa 2</Name>
</Product>
</Product>
<Product UserTypeID="Resort">
<Name>Aghios Stefanos</Name>
<Product UserTypeID="Property">
<Name>Villa Joanna</Name>
</Product>
<Product UserTypeID="Property">
<Name>Villa Eleonas</Name>
</Product>
</Product>
<Product UserTypeID="Resort">
<Name>Gouvia</Name>
<Product UserTypeID="Property">
<Name>Villa De Bono</Name>
</Product>
</Product>
<Product UserTypeID="Resort">
<Name>Kassiopi</Name>
<Product UserTypeID="Property">
<Name>Villa Imerolia</Name>
</Product>
<Product UserTypeID="Property">
<Name>Test Property</Name>
</Product>
<Product UserTypeID="Property">
<Name>Villa 1</Name>
</Product>
<Product UserTypeID="Property">
<Name>Villa 2</Name>
</Product>
</Product>
</Product>
</Product>
</Products>