select="following-sibling::*[1]/contact/name/firstName" : following sibling « XSLT stylesheet « XML

XML
1. CSS Style
2. SVG
3. XML Schema
4. XQuery
5. XSLT stylesheet
Java
XML Tutorial
Java Tutorial
Java Source Code / Java Documentation
Java Open Source
Jar File Download
Java Articles
Java Products
Java by API
C# / C Sharp
C# / CSharp Tutorial
ASP.Net
ASP.NET Tutorial
JavaScript DHTML
JavaScript Tutorial
JavaScript Reference
HTML / CSS
HTML CSS Reference
C / ANSI-C
C Tutorial
C++
C++ Tutorial
Ruby
PHP
Python
SQL Server / T-SQL
SQL Server / T-SQL Tutorial
Oracle PL / SQL
Oracle PL/SQL Tutorial
PostgreSQL
SQL / MySQL
MySQL Tutorial
VB.Net
VB.Net Tutorial
Flash / Flex / ActionScript
VBA / Excel / Access / Word
Microsoft Office PowerPoint 2007 Tutorial
Microsoft Office Excel 2007 Tutorial
Microsoft Office Word 2007 Tutorial
XML » XSLT stylesheet » following sibling 
select="following-sibling::*[1]/contact/name/firstName"


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>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>
  <employee eid="2" dept="training">
    <contact addInfo="info2">
      <name>
        <firstName>Sam</firstName>
        <middleName int="S">Stolte</middleName>
        <lastName>Williams</lastName>
        </name>
      <address>
        <street>St.</street>
        <city>Austin</city>
        <state>Texas</state>
        <zipcode>22222</zipcode>
      </address>
      <phone>
        <tel type="wk">512-3467899</tel>
        <tel type="hm">512-4623356</tel>
        <fax>512-3465655</fax>
      </phone>
      <email>s@s.com</email>
    </contact>
    <hireDate>2000-03-11</hireDate>
  </employee>
</employees>


File: Transform.xslt
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  version="1.0">
  <xsl:output method="html" indent="yes" />
  <xsl:template match="/">
    <html>
      <head>
        <title>Employee Output</title>
      </head>
      <body>
        <xsl:apply-templates select="employees/employee" />
      </body>
    </html>
  </xsl:template>

  <xsl:template match="employee">
    <xsl:variable name="choose">
      <xsl:choose>
        <xsl:when
          test="following-sibling::*/contact/name/firstName">
          <xsl:value-of
            select="following-sibling::*[1]/contact/name/firstName" />
        </xsl:when>
        <xsl:otherwise>Nobody</xsl:otherwise>
      </xsl:choose>
    </xsl:variable>

    <p>
      The employee element node that is the following sibling of
      <xsl:value-of select="self::*/contact/name/firstName" />
      is for the following staff member:
      <xsl:value-of select="$choose" />
    </p>

  </xsl:template>
</xsl:stylesheet>

Output:

<html>
   <head>
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <title>Employee Output</title>
   </head>
   <body></body>
</html>

 
Related examples in the same category
1. following-sibling demo
2. following-sibling
3. following-sibling::node()[1][not(self::NL)]
4. select="following-sibling::notification[count(preceding-sibling::employeeName[1] | current()) = 1]"
www.java2java.com | Contact Us
Copyright 2010 - 2030 Java Source and Support. All rights reserved.
All other trademarks are property of their respective owners.