XML/XSLT stylesheet/root

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

Match from / (root)

File: Data.xml

<?xml version="1.0"?>
<emailList>
  <person>
    <name>name 1</name>
    <email>g@gmail.ru</email>
  </person>
  <person>
    <name>name 2</name>
    <email>n@hotmail.ru</email>
  </person>
</emailList>
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:template match="/">
    <html>
      <head>
        <title>Email Listing</title>
      </head>
      <body>
        <table>
          <tr>
            <th>Name</th>
            <th>E-mail Address</th>
          </tr>
          <xsl:apply-templates/>
        </table>
      </body>
    </html>
  </xsl:template>
  <xsl:template match="emailList">
    <xsl:apply-templates/>
  </xsl:template>
  <xsl:template match="person">
    <tr>
      <td><xsl:value-of select="name"/></td>
      <td><xsl:value-of select="email"/></td>
    </tr>
  </xsl:template>
</xsl:stylesheet>
Output:
<html>
   <head>
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <title>Email Listing</title>
   </head>
   <body>
      <table>
         <tr>
            <th>Name</th>
            <th>E-mail Address</th>
         </tr>
           
         <tr>
            <td>name 1</td>
            <td>g@gmail.ru</td>
         </tr>
           
         <tr>
            <td>name 2</td>
            <td>n@hotmail.ru</td>
         </tr>
         
      </table>
   </body>
</html>



Select from root

File: Data.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="Transform.xslt"?>
<greeting>Hello World!</greeting>

File: Transform.xslt
<?xml version="1.0" encoding="ISO-8859-1"?>
<html xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
      xsl:version="2.0">
  <head><title>Hello World Example</title></head>
  <body>
    <p>
      <xsl:value-of select="/greeting" />
    </p>
  </body>
</html>
Output:
<html>
   <head>
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <title>Hello World Example</title>
   </head>
   <body>
      <p>Hello World!</p>
   </body>
</html>