File: Data.xml
<?xml version="1.0" encoding="US-ASCII"?>
<state name="BC">
<county>Bristol<population>1</population></county>
<county>Kent</county>
<county>Newport</county>
<county>Providence</county>
<county>Washington</county>
</state>
File: Transform.xslt
<?xml version="1.0" encoding="US-ASCII"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" />
<xsl:template match="state">
<xsl:call-template name="nl" />
<xsl:text>Counties of </xsl:text>
<xsl:value-of select="@name" />
<xsl:call-template name="nl" />
<xsl:text>Description: </xsl:text>
<xsl:value-of select="description" />
<xsl:call-template name="nl" />
<xsl:text>Source: </xsl:text>
<xsl:value-of select="from" />
<xsl:call-template name="nl" />
<xsl:text>URL: </xsl:text>
<xsl:value-of select="url" />
<xsl:call-template name="nl" />
<xsl:apply-templates select="county" />
<xsl:text>Estimated state population: </xsl:text>
<xsl:value-of select="sum(county/population)" />
<xsl:call-template name="nl" />
</xsl:template>
<xsl:template match="county">
<xsl:text> - </xsl:text>
<xsl:value-of select="@name" />
<xsl:text>: </xsl:text>
<xsl:value-of select="population" />
<xsl:apply-templates select="population" />
</xsl:template>
<xsl:template match="population" name="nl">
<xsl:text> </xsl:text>
</xsl:template>
</xsl:stylesheet>
Output:
Counties of BC
Description:
Source:
URL:
- : 1
- : - : - : - : Estimated state population: 1
|