My XML structure is like
<Client>
<Document>
<service class="ABC">
<author name="x"/>
<Details>
...
</Details>
</service>
</Document>
<Document>
<service class="ABC">
<author name="x"/>
<Details>
...
</Details>
</service>
</Document>
<Document>
<service class="ABC">
<author name="x"/>
<Details>
...
</Details>
</service>
</Document>'
</Client>
I want it like
<Client>
<Document>
<service class="ABC">
<author name="x"/>
<Details>
...
</Details>
</service>
</Document>
<Document>
<service class="ABC">
<author name="x"/>
<Details>
...
</Details>
</service>
</Document>
<Document>
<service class="ABC">
<author name="x"/>
<Details>
...
</Details>
</service>
</Document>'
<component>
<service class="ABC">
<author name="x"/>
</service>
</component>'
</Client>
My xsl file contains
<xsl:template match="//v3:Client">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
<component>
<service class="">
<xsl:apply-templates select="//v3:Client/v3:Document/v3:service/v3:author"/>
</service>
</component>
</xsl:copy>
</xsl:template>
<xsl:template match="//v3:Client/v3:component/v3:service">
<xsl:element name="service" namespace="urn:hl7-org:v3">
<xsl:attribute name="class">
<xsl:value-of select="//v3:Client/v3:Document/v3:service/@class"/>
</xsl:attribute>
</xsl:element>
</xsl:template>
But its not giving desired output. Its giving output like
Client
Document
service class="ABC"
author name="x"
details
...
details
service
Document
Document
service class="ABC"
author name="x"
details
...
details
service
Document
Document
service class="ABC"
author name="x"
details
...
details
service
Document
component
service class=""
author name="x"
service
service class=""
author name="x"
service
service class=""
author name="x"
service
component
Client
I'm new to xsl. Can anybody please help me to solve this problem?