XML/XSLT stylesheet/perform sort
Версия от 21:22, 25 мая 2010; (обсуждение)
perform-sort and sequence
<source lang="xml">
File: Data.xml <?xml version="1.0"?> <addressbook>
<address> <name> <title>Mr.</title> <first-name>A</first-name> <last-name>B</last-name> </name> <street>1234 Main Street</street> <city>Regina</city> <state>WI</state> <zip>48392</zip> </address>
</addressbook> File: Transform.xslt <?xml version="1.0"?> <xsl:stylesheet version="2.0"
xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="text"/> <xsl:template match="/"> <xsl:variable name="sortedCities" as="xs:string*"> <xsl:perform-sort> <xsl:sort select="."/> <xsl:apply-templates select="addressbook/address/city"/> <xsl:sequence select="("London", "Adelaide", "Rome")"/> <xsl:sequence select="("Jakarta", "Sao Paulo", "Timbuktu")"/> </xsl:perform-sort> </xsl:variable> <xsl:text>Our customers live in these cities: </xsl:text> <xsl:value-of select="$sortedCities" separator=" "/> </xsl:template>
</xsl:stylesheet> Output: Our customers live in these cities: Adelaide Jakarta London Regina Rome Sao Paulo Timbuktu
</source>
perform-sort demo
<source lang="xml">
File: Data.xml <?xml version="1.0"?> <addressbook>
<address> <name> <title>Mr.</title> <first-name>A</first-name> <last-name>B</last-name> </name> <street>1234 Main Street</street> <city>Vancouver</city> <state>WI</state> <zip>48392</zip> </address>
</addressbook> File: Transform.xslt <?xml version="1.0"?> <xsl:stylesheet version="2.0"
xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="text"/> <xsl:template match="/"> <xsl:variable name="sortedCities" as="xs:string*"> <xsl:perform-sort> <xsl:sort select="."/> <xsl:sequence select="addressbook/address/city"/> </xsl:perform-sort> </xsl:variable> <xsl:text>Our customers live in these cities: </xsl:text> <xsl:value-of select="$sortedCities" separator=" "/> </xsl:template>
</xsl:stylesheet> Output: Our customers live in these cities: Vancouver
</source>