Mega Code Archive

 
Categories / XML Tutorial / Xpath
 

Has two meanings

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>