Mega Code Archive

 
Categories / XML Tutorial / Xpath
 

Current() returns a node-set that has the current node as its only member

File: Data.xml <?xml version="1.0" encoding="utf-8"?> <data>     <Choices name="first">       <Choice name="first">11111</Choice>       <Choice name="second">22222</Choice>     </Choices>     <Choices name="second">       <Choice name="first">33333</Choice>       <Choice name="second">44444</Choice>     </Choices> </data> File: Transform.xslt <?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet       version="1.0"       xmlns:xsl="http://www.w3.org/1999/XSL/Transform">     <xsl:template match="/">       <TABLE border="1">         <TR>           <td> . </TH>           <td>current()</TH>         </TR>         <xsl:apply-templates select="//Choices"/>       </TABLE>     </xsl:template>     <xsl:template match="Choices">       <TR>         <TD>           <xsl:value-of select="./@name"/>         </TD>         <TD>           <xsl:value-of select="current()/@name"/>         </TD>       </TR>       <TR>         <TD>           <xsl:apply-templates select="Choice[./@name='first']"/>         </TD>         <TD>           <xsl:apply-templates select="Choice[current()/@name='first']"/>         </TD>       </TR>     </xsl:template> </xsl:stylesheet> Output: <?xml version="1.0" encoding="UTF-8"?><TABLE border="1"><TR><td> .  </TH><td>current()</TH></TR><TR><TD>first</TD><TD>first</TD></TR><TR> <TD>11111</TD><TD>1111122222</TD></TR><TR><TD>second</TD><TD>second</TD></TR><TR><TD>33333</TD><TD/></TR></TABLE>