Xslt 简明教程

XSLT <template>

<> 定义了一种方法,用于重新使用模板,以便为特定类型/上下文的节点生成所需的输出。

<xsl:template> defines a way to reuse templates in order to generate the desired output for nodes of a particular type/context.

Declaration

以下是元素的语法声明。

Following is the syntax declaration of <xsl:template> element.

<xsl:template
   name = Qname
   match = Pattern
   priority = number
   mode = QName >
</xsl:template>

Attributes

Sr.No

Name & Description

1

name Name of the element on which template is to be applied.

2

match Pattern which signifies the element(s) on which template is to be applied.

3

priority Priority number of a template. Matching template with low priority is not considered in from in front of high priority template.

4

mode Allows element to be processed multiple times to produce a different result each time.

Elements

Number of occurrences

Unlimited

Parent elements

xsl:stylesheet, xsl:transform

Child elements

xsl:apply-imports,xsl:apply-templates,xsl:attribute, xsl:call-template, xsl:choose, xsl:comment, xsl:copy, xsl:copy-of, xsl:element, xsl:fallback, xsl:for-each, xsl:if, xsl:message, xsl:number, xsl:param, xsl:processing-instruction, xsl:text, xsl:value-of, xsl:variable, output elements

Demo Example

此模板规则具有用于识别元素的模式,并以表格格式生成输出。

This template rule has a pattern that identifies <student> elements and produces an output in a tabular format.

students.xml

students.xml

<?xml version = "1.0"?>
<?xml-stylesheet type = "text/xsl" href = "students.xsl"?>
<class>
   <student rollno = "393">
      <firstname>Dinkar</firstname>
      <lastname>Kad</lastname>
      <nickname>Dinkar</nickname>
      <marks>85</marks>
   </student>
   <student rollno = "493">
      <firstname>Vaneet</firstname>
      <lastname>Gupta</lastname>
      <nickname>Vinni</nickname>
      <marks>95</marks>
   </student>
   <student rollno = "593">
      <firstname>Jasvir</firstname>
      <lastname>Singh</lastname>
      <nickname>Jazz</nickname>
      <marks>90</marks>
   </student>
</class>

students_imports.xsl

students_imports.xsl

<?xml version = "1.0" encoding = "UTF-8"?>
<xsl:stylesheet version = "1.0"
   xmlns:xsl = "http://www.w3.org/1999/XSL/Transform">

   <xsl:template match = "/">
      <html>
         <body>
            <h2>Students</h2>
            <table border = "1">
               <tr bgcolor = "#9acd32">
                  <th>Roll No</th>
                  <th>First Name</th>
                  <th>Last Name</th>
                  <th>Nick Name</th>
                  <th>Marks</th>
               </tr>

               <xsl:for-each select = "class/student">
                  <tr>
                     <td><xsl:value-of select = "@rollno"/></td>
                     <td><xsl:value-of select = "firstname"/></td>
                     <td><xsl:value-of select = "lastname"/></td>
                     <td><xsl:value-of select = "nickname"/></td>
                     <td><xsl:value-of select = "marks"/></td>
                  </tr>
               </xsl:for-each>
            </table>
         </body>
      </html>
   </xsl:template>
</xsl:stylesheet>

Output

xlst students