[xsl] Removing unwanted namespaces

Subject: [xsl] Removing unwanted namespaces
From: ram <ram_kurra@xxxxxxxxxxx>
Date: Wed, 11 Jan 2012 21:25:53 +0530 (IST)
Hi,
   I have a soap request which contains header and body information. I want to
remove the content inside the header and the namespaces for those which are
inside the  header .
  Here is my example

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:con="http://abcd.com/abc/context";
xmlns:dat="http://test.com/test/testContracts";
xmlns:head="http://abcd.com/abc/header";
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";>
	<soapenv:Header>
		<head:abcdHeader>
			<head:Props>

			</head:Props>
			<head:Routing>

			</head:Routing>
		</head:abcdHeader>
		<con:Context>
			<con:CtxProps>
				context info
			</con:CtxProps>
		</con:Context>
	</soapenv:Header>
	<soapenv:Body>
		 Body content
	</soapenv:Body>
</soapenv:Envelope>


The output i am expecting is like below
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:dat="http://test.com/test/testContracts";
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";>
	<soapenv:Header>

	</soapenv:Header>
	<soapenv:Body>
		 Body content
	</soapenv:Body>
</soapenv:Envelope>


   I tried the following xslt code which removes the Header Info, but it still
keeping the namespaces which references the ones inside the  header.


	<xsl:template match="@*|node()">
		<xsl:copy>
			<xsl:apply-templates select="@*|node()"/>
		</xsl:copy>
	</xsl:template>
	<xsl:template match="//*[local-name()='abcdHeader'] ">

		</xsl:template>
	<xsl:template match="//*[local-name()='Context'] "/>


The output that i am getting

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:dat="http://test.com/test/testContracts";
xmlns:head="http://abcd.com/abc/header";
xmlns:con="http://abcd.com/abc/context";
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";>
	<soapenv:Header>

	</soapenv:Header>
	<soapenv:Body>
		 Body content
	</soapenv:Body>
</soapenv:Envelope>

   i dont want to header and context namesspaces in the output. How to fix
this issue.

--kk

Current Thread