value-of select="person[position()=3]/name" : select « XSLT stylesheet « XML






value-of select="person[position()=3]/name"


File: Data.xml
<?xml version="1.0" encoding="utf-8"?>
<emailList>
  <head:header xmlns:head="http://www.domain.com/namespace/header">
    <title>Email List</title>
    <maintainer>Joe</maintainer>
  </head:header>
  <person type="personal" id="p001">
    <name>person1</name>
    <email>p@hotmail.com</email>
  </person>
  <person type="work" id="p002">
    <name>person2</name>
    <email>p@hotmail.com</email>
  </person>
  <person type="personal" id="p003">
    <name>person3</name>
    <email>p3@hotmail.com</email>
  </person>
</emailList>

File: Transform.xslt
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:head="http://www.domain.com/namespace/header">
  <xsl:output method="xml" indent="yes" />
  <xsl:template match="/">
    <xsl:apply-templates select="emailList" />
  </xsl:template>
  <xsl:template match="emailList">
    <xsl:value-of select="person[position()=3]/name" />
  </xsl:template>


</xsl:stylesheet>

Output:

<?xml version="1.0" encoding="UTF-8"?>person3

 








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="employee[@dept='programming']"
18.select="employees/head:header/namespace::head"