"//" has two meanings : Abbreivation « XPath « XML Tutorial






When using "//" at the beginning of a location path, "//" selects all nodes in the document of the specified type. 
When using "//" in the middle of a location path, "//" selects all nodes which appear in the node selected with the first part of the location path.

File: Data.xml

<data>
    <AAA id="a1" pos="start">
      <BBB id="b1"/>
      <BBB id="b2"/>
    </AAA>
    <AAA id="a2">
      <BBB id="b3"/>
      <BBB id="b4"/>
      <CCC id="c1">
        <DDD id="d1"/>
      </CCC>
      <BBB id="b5">
        <CCC id="c2"/>
      </BBB>
    </AAA>
</data>

File: Transform.xslt

<?xml version="1.0"?>
<xsl:stylesheet version="1.0" 
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="/">
      <xsl:apply-templates select="//BBB"/>
      <xsl:apply-templates select="//CCC"/>
      <xsl:apply-templates select="//DDD"/>
      <xsl:apply-templates select="//AAA"/>
    </xsl:template>
    <xsl:template match="AAA">
      <div style="color:navy">
        <xsl:value-of select="name()"/>
        <xsl:text> id=</xsl:text>
        <xsl:value-of select="@id"/>
      </div>
    </xsl:template>
    <xsl:template match="BBB">
      <div style="color:purple">
        <xsl:value-of select="name()"/>
        <xsl:text> id=</xsl:text>
        <xsl:value-of select="@id"/>
      </div>
    </xsl:template>
    <xsl:template match="CCC">
      <div style="color:red">
        <xsl:value-of select="name()"/>
        <xsl:text> id=</xsl:text>
        <xsl:value-of select="@id"/>
      </div>
    </xsl:template>
    <xsl:template match="DDD">
      <div style="color:blue">
        <xsl:value-of select="name()"/>
        <xsl:text> id=</xsl:text>
        <xsl:value-of select="@id"/>
      </div>
    </xsl:template>


</xsl:stylesheet>

<?xml version="1.0" encoding="UTF-8"?><div style="color:purple">BBB id=b1</div><div style="color:purple">BBB id=b2</div><div style="color:purple">BBB id=b3</div><div style="color:purple">BBB id=b4</div><div style="color:purple">BBB id=b5</div><div style="color:red">CCC id=c1</div><div style="color:red">CCC id=c2</div><div style="color:blue">DDD id=d1</div><div style="color:navy">AAA id=a1</div><div style="color:navy">AAA id=a2</div>








4.10.Abbreivation
4.10.1.Wildcard "*" selects all possibilities
4.10.2."//" has two meanings
4.10.3.List the elements in an xml document
4.10.4.Count elements and attributes
4.10.5.template match="*" (asterisk)
4.10.6.template match="brand|name|units"
4.10.7.template match="/"
4.10.8.value-of select="."
4.10.9.Axis child:: can be be omitted from a location step as it is the default axis.
4.10.10... is short for parent::
4.10.11.// is short for /descendant-or-self::