XML Tutorial/XSLT stylesheet/import

Материал из Web эксперт
Перейти к: навигация, поиск

Call template from another file

   <source lang="xml">

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></source>


xsl:import example

   <source lang="xml">

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">

<xsl:value-of select = "."/>

  </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">
     
<paragraph>Author: <xsl:value-of select = "lastName"/>, <xsl:value-of select = "firstName"/> </p> </xsl:template> <xsl:template match = "*|text()"/>

</xsl:stylesheet></source>