XML/XSLT stylesheet/mod
Версия от 21:22, 25 мая 2010; (обсуждение)
if test="(position() mod
<source lang="xml">
File: Data.xml <?xml version="1.0" encoding="utf-8"?> <cars>
<manufacturer name="Chevrolet"> <car>Cavalier</car> <car>Corvette</car> <car>Impala</car> <car>Malibu</car> </manufacturer> <manufacturer name="Ford"> <car>Pinto</car> <car>Mustang</car> <car>Taurus</car> </manufacturer> <manufacturer name="Volkswagen"> <car>Beetle</car> <car>Jetta</car> <car>Passat</car> <car>Touraeg</car> </manufacturer>
</cars> 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="text"/> <xsl:template match="/"> <xsl:text>Automobile manufacturers and their cars </xsl:text> <xsl:for-each select="cars/manufacturer"> <xsl:value-of select="@name"/> <xsl:text> </xsl:text> <xsl:for-each select="car"> <xsl:text> </xsl:text> <xsl:if test="(position() mod 2) = 0"> <xsl:number count="manufacturer|car" level="multiple" format="1.1. "/> </xsl:if> <xsl:value-of select="."/> <xsl:text> </xsl:text> </xsl:for-each> </xsl:for-each> </xsl:template>
</xsl:stylesheet>
Output: omobile manufacturers and their cars Chevrolet
Cavalier 1.2. Corvette Impala 1.4. Malibu
Ford
Pinto 2.2. Mustang Taurus
Volkswagen
Beetle 3.2. Jetta Passat 3.4. Touraeg </source>
mod function
<source lang="xml">
File: Data.xml <?xml version="1.0"?> <towns>
<town>A</town> <town>B</town> <town>C</town> <town>D</town> <town>E</town> <town>F</town> <town>G</town> <town>H</town> <town>I</town> <town>J</town> <town>K</town> <town>L</town>
</towns>
File: Transform.xslt <?xml version="1.0"?> <xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" indent="yes" /> <xsl:param name="cols" select="4" /> <xsl:template match="towns">
<xsl:value-of select="." /> |
</xsl:for-each>
</xsl:template>
</xsl:stylesheet> Output: ml version="1.0" encoding="UTF-8"?>
A | D | G | J |
B | E | H | K |
C | F | I | L |
</source>