XML Tutorial/XSLT stylesheet/import
Версия от 18:22, 25 мая 2010; (обсуждение)
Call template from another file
File: Data.xml
<?xml version="1.0"?>
<PopulationChange segment="Top 3">
<State>
<Name>California</Name>
<Population>35116033</Population>
<Rank>1</Rank>
<Increase>515570</Increase>
<PercentChange>1.5</PercentChange>
</State>
<State>
<Name>Texas</Name>
<Population>21779893</Population>
<Rank>2</Rank>
<Increase>408910</Increase>
<PercentChange>1.9</PercentChange>
</State>
</PopulationChange>
File: Transform.xslt
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:import href="wspace.xsl" />
<xsl:template match="State">
<xsl:text>Rank:</xsl:text>
<xsl:call-template name="sp1" />
<xsl:value-of select="Rank" />
<xsl:call-template name="n1" />
<xsl:text>State:</xsl:text>
<xsl:call-template name="sp1" />
<xsl:value-of select="Name" />
<xsl:call-template name="n2" />
</xsl:template>
</xsl:stylesheet>
File: wspace.xsl
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template name="sp1">
<xsl:text> </xsl:text>
</xsl:template>
<xsl:template name="sp2">
<xsl:text> </xsl:text>
<xsl:text> </xsl:text>
</xsl:template>
<xsl:template name="sp3">
<xsl:text> </xsl:text>
<xsl:text> </xsl:text>
<xsl:text> </xsl:text>
</xsl:template>
<xsl:template name="n1">
<xsl:text> </xsl:text>
</xsl:template>
<xsl:template name="n2">
<xsl:text> </xsl:text>
<xsl:text> </xsl:text>
</xsl:template>
<xsl:template name="n3">
<xsl:text> </xsl:text>
<xsl:text> </xsl:text>
<xsl:text> </xsl:text>
</xsl:template>
</xsl:stylesheet>
xsl:import example
File: Data.xml
<?xml version = "1.0"?>
<?xml:stylesheet type = "text/xsl" href = "Transform.xslt"?>
<book isbn = "999-99999-9-X">
<title>XML</title>
<author>
<firstName>Paul</firstName>
<lastName>Deitel</lastName>
</author>
<chapters>
<preface num = "1" pages = "2">Welcome</preface>
<chapter num = "1" pages = "4">Easy XML</chapter>
<chapter num = "2" pages = "2">XML Elements?</chapter>
<appendix num = "1" pages = "9">Entities</appendix>
</chapters>
<media type = "CD"/>
</book>
File: Transform.xslt
<?xml version = "1.0"?>
<xsl:stylesheet version = "1.0"
xmlns:xsl = "http://www.w3.org/1999/XSL/Transform">
<xsl:import href = "usage2.xsl"/>
<xsl:template match = "title">
<h2>
<xsl:value-of select = "."/>
</h2>
</xsl:template>
</xsl:stylesheet>
File: usage2.xsl
<?xml version = "1.0"?>
<xsl:stylesheet version = "1.0"
xmlns:xsl = "http://www.w3.org/1999/XSL/Transform">
<xsl:template match = "book">
<html>
<body>
<xsl:apply-templates/>
</body>
</html>
</xsl:template>
<xsl:template match = "title">
<xsl:value-of select = "."/>
</xsl:template>
<xsl:template match = "author">
<br/>
<paragraph>Author:
<xsl:value-of select = "lastName"/>,
<xsl:value-of select = "firstName"/>
</p>
</xsl:template>
<xsl:template match = "*|text()"/>
</xsl:stylesheet>