[Solved] Merge different products belong to each standard – V2 [duplicate]


This XSLT will do the thing:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:x="http://ws.wso2.org/dataservice" xmlns="http://ws.wso2.org/dataservice" exclude-result-prefixes="x" version="1.0">
  <xsl:output indent="yes" method="xml" />

  <xsl:template match="x:Standards">
    <Standards namespace="{namespace-uri()}">
      <xsl:apply-templates select=".//x:Standard" />
    </Standards>
  </xsl:template>

  <xsl:template match="x:Standard">
    <Standard>
      <xsl:copy-of select="x:ProductID" />
      <xsl:copy-of select="x:Prefix"/>
      <xsl:copy-of select="x:SNumber"/>
      <RelatedProducts>
        <xsl:apply-templates select=".//x:RelatedProduct"/>     
      </RelatedProducts>
      <xsl:copy-of select="x:S1"/>
      <xsl:copy-of select="x:S2"/>    
    </Standard>
  </xsl:template>

  <xsl:template match="x:RelatedProduct">
    <xsl:element name="RelatedProduct">
      <xsl:element name="RelationType">
        <xsl:value-of select="name(..)" />
      </xsl:element>
      <xsl:copy-of select="*"/>
    </xsl:element>
  </xsl:template>
</xsl:stylesheet>

Result is:

<?xml version="1.0"?>
<Standards xmlns="http://ws.wso2.org/dataservice" namespace="http://ws.wso2.org/dataservice">
    <Standard>
        <ProductID>200057</ProductID>
        <Prefix>ISO</Prefix>
        <SNumber>1001</SNumber>
        <RelatedProducts>
            <RelatedProduct>
                <RelationType>DraftProducts</RelationType>
                <ProductID>1500163</ProductID>
            </RelatedProduct>
            <RelatedProduct>
                <RelationType>ReferenceProducts</RelationType>
                <ProductID>263973</ProductID>
                <RelationId>708519</RelationId>
                <Designation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
            </RelatedProduct>
            <RelatedProduct>
                <RelationType>ReferenceProducts</RelationType>
                <ProductID>320056</ProductID>
                <RelationId>934789</RelationId>
                <Designation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
            </RelatedProduct>
            <RelatedProduct>
                <RelationType>RelatedIntProducts</RelationType>
                <ProductID xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
                <RelationId>116881</RelationId>
                <Relationship>Identical</Relationship>
                <Designation>NEN ISO 1001</Designation>
            </RelatedProduct>
            <RelatedProduct>
                <RelationType>RelatedIntProducts</RelationType>
                <ProductID>208076</ProductID>
                <RelationId>116886</RelationId>
                <Relationship>Identical</Relationship>
                <Designation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
            </RelatedProduct>
        </RelatedProducts>
        <S1>1001</S1>
        <S2>1986</S2>
    </Standard>
    <Standard>
        <ProductID>200058</ProductID>
        <Prefix>ISO</Prefix>
        <SNumber>1002</SNumber>
        <RelatedProducts>
            <RelatedProduct>
                <RelationType>DraftProducts</RelationType>
                <ProductID>1500167</ProductID>
            </RelatedProduct>
            <RelatedProduct>
                <RelationType>ReferenceProducts</RelationType>
                <ProductID>263974</ProductID>
                <RelationId>708519</RelationId>
                <Designation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
            </RelatedProduct>
            <RelatedProduct>
                <RelationType>ReferenceProducts</RelationType>
                <ProductID>320052</ProductID>
                <RelationId>934754</RelationId>
                <Designation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
            </RelatedProduct>
            <RelatedProduct>
                <RelationType>RelatedIntProducts</RelationType>
                <ProductID xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
                <RelationId>116837</RelationId>
                <Relationship>Identical</Relationship>
                <Designation>NEN ISO 1001</Designation>
            </RelatedProduct>
            <RelatedProduct>
                <RelationType>RelatedIntProducts</RelationType>
                <ProductID>208074</ProductID>
                <RelationId>116843</RelationId>
                <Relationship>Identical</Relationship>
                <Designation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
            </RelatedProduct>
        </RelatedProducts>
        <S1>1005</S1>
        <S2>1983</S2>
    </Standard>
</Standards>

2

solved Merge different products belong to each standard – V2 [duplicate]