File: Data.xml
<?xml version="1.0" encoding="UTF-8"?>
<eu>
<member>
<state>Austria</state>
<state founding="yes">Belgium</state>
</member>
<candidate>
<state>Bulgaria</state>
<state>Cyprus</state>
<state>Czech Republic</state>
</candidate>
</eu>
File: Transform.xslt
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes" />
<xsl:attribute-set name="new">
<xsl:attribute name="founding">no</xsl:attribute>
</xsl:attribute-set>
<xsl:template match="eu">
<xsl:apply-templates select="member" />
</xsl:template>
<xsl:template match="member">
<eu>
<members>
<xsl:apply-templates select="state[not(@founding)]" />
</members>
</eu>
</xsl:template>
<xsl:template match="state">
<xsl:copy use-attribute-sets="new">
<xsl:apply-templates />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
Output:
<?xml version="1.0" encoding="UTF-8"?>
<eu>
<members>
<state founding="no">Austria</state>
</members>
</eu>
|