select="employee[@dept='programming']" : select « XSLT stylesheet « XML






select="employee[@dept='programming']"


File: Data.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="Transform.xslt" type="text/xsl"?>
<employees xmlns="http://www.domain.com/namespace/employee">
  <title>Employee Data File</title>
  <employee eid="1" dept="programming">
    <contact addInfo="info1">
      <name>
        <firstName>Joe</firstName>
        <middleName int="B">Brian</middleName>
        <lastName>Smith</lastName>
      </name>
      <address>
        <street>1 Drive</street>
        <city>Vancouver</city>
        <state>BC</state>
        <zipcode>80210</zipcode>
      </address>
      <phone>
        <tel type="wk">111-1111111</tel>
        <tel type="hm">222-222222</tel>
        <fax>303-4667357</fax>
      </phone>
      <email>a@a.com</email>
    </contact>
    <hireDate>2008-10-29</hireDate>
  </employee>

</employees>


File: Transform.xslt
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  version="1.0">
  <xsl:template match="employees">
    <html>
      <head>
        <title>Employee Email List</title>
      </head>
      <body>
        <table>
          <tr>
            <th>Number</th>
            <th>
              <xsl:value-of
                select="employee/contact/phone/tel/attribute::type" />
            </th>
          </tr>
          <tr>
            <xsl:for-each
              select="employee[@dept='programming']">
              <td>
                <xsl:number />
              </td>
              <td>
                <xsl:value-of
                  select="contact/phone/tel[2]" />
              </td>
            </xsl:for-each>
          </tr>
        </table>
      </body>
    </html>
  </xsl:template>

</xsl:stylesheet>
Output:

<?xml version="1.0" encoding="UTF-8"?>
  Employee Data File
  
    
      
        Joe
        Brian
        Smith
      
      
        1 Drive
        Vancouver
        BC
        80210
      
      
        111-1111111
        222-222222
        303-4667357
      
      a@a.com
    
    2008-10-29
  

 








Related examples in the same category

1.Parent and attribute
2.select="../@attribute"
3.child
4.Get value from tag with {}
5.Node selection by level
6.Select Node by index
7.Select attribute value and output to a list
8.context position and context size
9.select with if then else
10.select="document('')/*/book:category[@code=current()/@category]/@desc"
11.select distinct values
12.Select one from the target value list
13.select="@*" (at)
14.Select one tag from a list of tags
15.select="employees/employee[2]/following::contact/name/firstName"
16.select="employees/employee[2]/preceding::contact/name/firstName"
17.select="employees/head:header/namespace::head"
18.value-of select="person[position()=3]/name"