Raveendran, Reshma wrote:
I want to apply xsl on the xml below to get a transformed xml as shown
below.
Source xml ---
<input xmlns="http://tempuri.org/">
<InputParams
xmlns="http://schemas.datacontract.org/2004/07/GenericQuery">
<anyType xsi:type="q1:ResultSpecPagination"
xmlns="http://schemas.microsoft.com/2003/10/Serialization/Arrays"
xmlns:q1="urn:cbc:message"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<PageSize xmlns="">10</PageSize>
</anyType>
<anyType xsi:type="q2:AccountFilter"
xmlns="http://schemas.microsoft.com/2003/10/Serialization/Arrays"
xmlns:q2="urn:cbc:clientinfo"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<AccountFilter xmlns="">
<O>101</O>
<F>173</A>
</AccountFilter>
</anyType>
<anyType xsi:type="xsd:string"
xmlns="http://schemas.microsoft.com/2003/10/Serialization/Arrays"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">677</anyType>
<anyType xsi:type="xsd:string"
xmlns="http://schemas.microsoft.com/2003/10/Serialization/Arrays"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">A</anyType>
</InputParams>
</input>
Expected Result:
- <pSearch xmlns="http://tempuri.org/">
- <p1>
<PageSize xmlns="">10</PageSize>
</p1>
- <p2>
-<AccountFilter xmlns="">
<O>101</O>
<F>173</F>
</AccountFilter>
</p2>
<p3>677</p3>
<p4>A</p4>
</pSearch>
With XSLT 2.0 you can prevent namespaces from being copied:
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:df="http://tempuri.org/"
xmlns="http://tempuri.org/"
xmlns:gq="http://schemas.datacontract.org/2004/07/GenericQuery"
xmlns:sa="http://schemas.microsoft.com/2003/10/Serialization/Arrays"
exclude-result-prefixes="df gq sa"
version="2.0">
<xsl:output indent="yes"/>
<xsl:template match="df:input">
<pSearch>
<xsl:apply-templates select="gq:InputParams/sa:anyType"/>
</pSearch>
</xsl:template>
<xsl:template match="sa:anyType">
<xsl:element name="p{position()}">
<xsl:copy-of select="node()[normalize-space()]"
copy-namespaces="no"/>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
That should do what you want.
--
Martin Honnen
http://msmvps.com/blogs/martin_honnen/
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--