[xsl] Making all attributes empty and retaining the attributes names

Subject: [xsl] Making all attributes empty and retaining the attributes names
From: "Pankaj Chaturvedi" <pankaj.chaturvedi@xxxxxxxxx>
Date: Fri, 30 May 2008 17:50:52 +0530
Hi all,

I have strange requirement, where in I need to remove all the attribute
values but need to retain their names (basically having empty attributes)
along with their elements. I have written a small template to get this done
but all the attributes get removed also.


<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
xmlns:fo="http://www.w3.org/1999/XSL/Format";
xmlns:xs="http://www.w3.org/2001/XMLSchema";
xmlns:fn="http://www.w3.org/2005/xpath-functions";>

	<xsl:output encoding="UTF-8" indent="yes"/>


	<xsl:template match="node()">
		<xsl:copy>
			<xsl:apply-templates select="node()"/>
		</xsl:copy>
	</xsl:template>

	<xsl:template match="text()"/>

</xsl:stylesheet>
	

I tried to retain the attributes names with something like below but I know
its incorrect:



	<xsl:template match="@*">
		<xsl:copy>
		<xsl:apply-templates select="name(@*)"/>
		</xsl:copy>	
	</xsl:template>	

Error: Too many parameters.

Other simple way is to use regular expression (search/replace) but would
prefer to avoid that.

Any ideas please.	


Best,

Pankaj Chaturvedi

============================================================================
================

Current Thread