English | Français | Deutsch | >> Magyar << | 中文 | Polski ZVON > Tutorials > XSLT Tutorial
>> Oldal 15 << | Előző | Következő | Tartalom | Elem index

A tengelyek (axis) nagyon fontos szerepet t?ltenek be az XSLT használatakor. B?vebb részletekért lásd az XSLT referenciát. Hasonlítsd ?ssze: child tengely ( XSLT stíluslap 1 ), descendant tengely ( XSLT stíluslap 2 ), parent tengely ( XSLT stíluslap 3 ), ancestor tengely ( XSLT stíluslap 4 ), following-sibling tengely ( XSLT stíluslap 5 ), preceding-sibling tengely ( XSLT stíluslap 6 ), following tengely ( XSLT stíluslap 7 ), preceding tengely ( XSLT stíluslap 8 ), attribute tengely( XSLT stíluslap 9 ), namespace tengely ( XSLT stíluslap 10 ), self tengely ( XSLT stíluslap 11 ), descendant-or-self tengely ( XSLT stíluslap 12 ), ancestor-or-self tengely ( XSLT stíluslap 13 ).

XSLT stíluslap 1

XML forrás
<source>

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

</source>

Kimenet
<table border="1" cellpadding="6">
  <tr>
     <th colspan="2">Axis: child</th>
  </tr>
  <tr>
     <th>Element</th>
     <th>Node-set</th>
  </tr>
  <tr>
     <td>AAA id = a1</td>
     <td>b1b2</td>
  </tr>
  <tr>
     <td>BBB id = b1</td>
     <td/>
  </tr>
  <tr>
     <td>BBB id = b2</td>
     <td/>
  </tr>
  <tr>
     <td>AAA id = a2</td>
     <td>b3b4c1b5</td>
  </tr>
  <tr>
     <td>BBB id = b3</td>
     <td/>
  </tr>
  <tr>
     <td>BBB id = b4</td>
     <td/>
  </tr>
  <tr>
     <td>CCC id = c1</td>
     <td>c2</td>
  </tr>
  <tr>
     <td>CCC id = c2</td>
     <td/>
  </tr>
  <tr>
     <td>BBB id = b5</td>
     <td>c3</td>
  </tr>
  <tr>
     <td>CCC id = c3</td>
     <td/>
  </tr>
</table>

HTML nézet
Axis: child
Element Node-set
AAA id = a1 b1b2
BBB id = b1
BBB id = b2
AAA id = a2 b3b4c1b5
BBB id = b3
BBB id = b4
CCC id = c1 c2
CCC id = c2
BBB id = b5 c3
CCC id = c3
XSLT stíluslap
<xsl:stylesheet version = '1.0'
     xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>

<xsl:template match="/">
     <table border="1" cellpadding="6">
          <tr>
               <th colspan="2">Axis: child</th>
          </tr>
          <tr>
               <th>Element</th>
               <th>Node-set</th>
          </tr>
          <xsl:for-each select="/source//*">
               <xsl:call-template name="print"/>
          </xsl:for-each>
     </table>
</xsl:template>

<xsl:template name="print">
     <tr>
          <td>
               <xsl:value-of select="name()"/>
               <xsl:text> id = </xsl:text>
               <xsl:value-of select="./@id"/>
          </td>
          <td>
               <xsl:for-each select="child::*">
                    <xsl:value-of select="./@id"/>
                    <xsl:text/>
               </xsl:for-each>
          </td>
     </tr>
</xsl:template>


</xsl:stylesheet>


XSLT stíluslap 2

XML forrás
<source>

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

</source>

Kimenet
<table border="1" cellpadding="6">
  <tr>
     <th colspan="2">Axis: descendant</th>
  </tr>
  <tr>
     <th>Element</th>
     <th>Node-set</th>
  </tr>
  <tr>
     <td>AAA id = a1</td>
     <td>b1b2</td>
  </tr>
  <tr>
     <td>BBB id = b1</td>
     <td/>
  </tr>
  <tr>
     <td>BBB id = b2</td>
     <td/>
  </tr>
  <tr>
     <td>AAA id = a2</td>
     <td>b3b4c1c2b5c3</td>
  </tr>
  <tr>
     <td>BBB id = b3</td>
     <td/>
  </tr>
  <tr>
     <td>BBB id = b4</td>
     <td/>
  </tr>
  <tr>
     <td>CCC id = c1</td>
     <td>c2</td>
  </tr>
  <tr>
     <td>CCC id = c2</td>
     <td/>
  </tr>
  <tr>
     <td>BBB id = b5</td>
     <td>c3</td>
  </tr>
  <tr>
     <td>CCC id = c3</td>
     <td/>
  </tr>
</table>

HTML nézet
Axis: descendant
Element Node-set
AAA id = a1 b1b2
BBB id = b1
BBB id = b2
AAA id = a2 b3b4c1c2b5c3
BBB id = b3
BBB id = b4
CCC id = c1 c2
CCC id = c2
BBB id = b5 c3
CCC id = c3
XSLT stíluslap
<xsl:stylesheet version = '1.0'
     xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>

<xsl:template match="/">
     <table border="1" cellpadding="6">
          <tr>
               <th colspan="2">Axis: descendant</th>
          </tr>
          <tr>
               <th>Element</th>
               <th>Node-set</th>
          </tr>
          <xsl:for-each select="/source//*">
               <xsl:call-template name="print"/>
          </xsl:for-each>
     </table>
</xsl:template>

<xsl:template name="print">
     <tr>
          <td>
               <xsl:value-of select="name()"/>
               <xsl:text> id = </xsl:text>
               <xsl:value-of select="./@id"/>
          </td>
          <td>
               <xsl:for-each select="descendant::*">
                    <xsl:value-of select="./@id"/>
                    <xsl:text/>
               </xsl:for-each>
          </td>
     </tr>
</xsl:template>


</xsl:stylesheet>


XSLT stíluslap 3

XML forrás
<source>

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

</source>

Kimenet
<table border="1" cellpadding="6">
  <tr>
     <th colspan="2">Axis: parent</th>
  </tr>
  <tr>
     <th>Element</th>
     <th>Node-set</th>
  </tr>
  <tr>
     <td>AAA id = a1</td>
     <td>source</td>
  </tr>
  <tr>
     <td>BBB id = b1</td>
     <td>a1</td>
  </tr>
  <tr>
     <td>BBB id = b2</td>
     <td>a1</td>
  </tr>
  <tr>
     <td>AAA id = a2</td>
     <td>source</td>
  </tr>
  <tr>
     <td>BBB id = b3</td>
     <td>a2</td>
  </tr>
  <tr>
     <td>BBB id = b4</td>
     <td>a2</td>
  </tr>
  <tr>
     <td>CCC id = c1</td>
     <td>a2</td>
  </tr>
  <tr>
     <td>CCC id = c2</td>
     <td>c1</td>
  </tr>
  <tr>
     <td>BBB id = b5</td>
     <td>a2</td>
  </tr>
  <tr>
     <td>CCC id = c3</td>
     <td>b5</td>
  </tr>
</table>

HTML nézet
Axis: parent
Element Node-set
AAA id = a1 source
BBB id = b1 a1
BBB id = b2 a1
AAA id = a2 source
BBB id = b3 a2
BBB id = b4 a2
CCC id = c1 a2
CCC id = c2 c1
BBB id = b5 a2
CCC id = c3 b5
XSLT stíluslap
<xsl:stylesheet version = '1.0'
     xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>

<xsl:template match="/">
     <table border="1" cellpadding="6">
          <tr>
               <th colspan="2">Axis: parent</th>
          </tr>
          <tr>
               <th>Element</th>
               <th>Node-set</th>
          </tr>
          <xsl:for-each select="/source//*">
               <xsl:call-template name="print"/>
          </xsl:for-each>
     </table>
</xsl:template>

<xsl:template name="print">
     <tr>
          <td>
               <xsl:value-of select="name()"/>
               <xsl:text> id = </xsl:text>
               <xsl:value-of select="./@id"/>
          </td>
          <td>
               <xsl:for-each select="parent::*">
                    <xsl:if test="not(@id)">
                         <xsl:value-of select="name()"/>
                    </xsl:if>
                    <xsl:value-of select="./@id"/>
                    <xsl:text/>
               </xsl:for-each>
          </td>
     </tr>
</xsl:template>


</xsl:stylesheet>


XSLT stíluslap 4

XML forrás
<source>

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

</source>

Kimenet
<table border="1" cellpadding="6">
  <tr>
     <th colspan="2">Axis: ancestor</th>
  </tr>
  <tr>
     <th>Element</th>
     <th>Node-set</th>
  </tr>
  <tr>
     <td>AAA id = a1</td>
     <td>source</td>
  </tr>
  <tr>
     <td>BBB id = b1</td>
     <td>sourcea1</td>
  </tr>
  <tr>
     <td>BBB id = b2</td>
     <td>sourcea1</td>
  </tr>
  <tr>
     <td>AAA id = a2</td>
     <td>source</td>
  </tr>
  <tr>
     <td>BBB id = b3</td>
     <td>sourcea2</td>
  </tr>
  <tr>
     <td>BBB id = b4</td>
     <td>sourcea2</td>
  </tr>
  <tr>
     <td>CCC id = c1</td>
     <td>sourcea2</td>
  </tr>
  <tr>
     <td>CCC id = c2</td>
     <td>sourcea2c1</td>
  </tr>
  <tr>
     <td>BBB id = b5</td>
     <td>sourcea2</td>
  </tr>
  <tr>
     <td>CCC id = c3</td>
     <td>sourcea2b5</td>
  </tr>
</table>

HTML nézet
Axis: ancestor
Element Node-set
AAA id = a1 source
BBB id = b1 sourcea1
BBB id = b2 sourcea1
AAA id = a2 source
BBB id = b3 sourcea2
BBB id = b4 sourcea2
CCC id = c1 sourcea2
CCC id = c2 sourcea2c1
BBB id = b5 sourcea2
CCC id = c3 sourcea2b5
XSLT stíluslap
<xsl:stylesheet version = '1.0'
     xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>

<xsl:template match="/">
     <table border="1" cellpadding="6">
          <tr>
               <th colspan="2">Axis: ancestor</th>
          </tr>
          <tr>
               <th>Element</th>
               <th>Node-set</th>
          </tr>
          <xsl:for-each select="/source//*">
               <xsl:call-template name="print"/>
          </xsl:for-each>
     </table>
</xsl:template>

<xsl:template name="print">
     <tr>
          <td>
               <xsl:value-of select="name()"/>
               <xsl:text> id = </xsl:text>
               <xsl:value-of select="./@id"/>
          </td>
          <td>
               <xsl:for-each select="ancestor::*">
                    <xsl:if test="not(@id)">
                         <xsl:value-of select="name()"/>
                    </xsl:if>
                    <xsl:value-of select="./@id"/>
                    <xsl:text/>
               </xsl:for-each>
          </td>
     </tr>
</xsl:template>


</xsl:stylesheet>


XSLT stíluslap 5

XML forrás
<source>

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

</source>

Kimenet
<table border="1" cellpadding="6">
  <tr>
     <th colspan="2">Axis: following-sibling</th>
  </tr>
  <tr>
     <th>Element</th>
     <th>Node-set</th>
  </tr>
  <tr>
     <td>AAA id = a1</td>
     <td>a2</td>
  </tr>
  <tr>
     <td>BBB id = b1</td>
     <td>b2</td>
  </tr>
  <tr>
     <td>BBB id = b2</td>
     <td/>
  </tr>
  <tr>
     <td>AAA id = a2</td>
     <td/>
  </tr>
  <tr>
     <td>BBB id = b3</td>
     <td>b4c1b5</td>
  </tr>
  <tr>
     <td>BBB id = b4</td>
     <td>c1b5</td>
  </tr>
  <tr>
     <td>CCC id = c1</td>
     <td>b5</td>
  </tr>
  <tr>
     <td>CCC id = c2</td>
     <td/>
  </tr>
  <tr>
     <td>BBB id = b5</td>
     <td/>
  </tr>
  <tr>
     <td>CCC id = c3</td>
     <td/>
  </tr>
</table>

HTML nézet
Axis: following-sibling
Element Node-set
AAA id = a1 a2
BBB id = b1 b2
BBB id = b2
AAA id = a2
BBB id = b3 b4c1b5
BBB id = b4 c1b5
CCC id = c1 b5
CCC id = c2
BBB id = b5
CCC id = c3
XSLT stíluslap
<xsl:stylesheet version = '1.0'
     xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>

<xsl:template match="/">
     <table border="1" cellpadding="6">
          <tr>
               <th colspan="2">Axis: following-sibling</th>
          </tr>
          <tr>
               <th>Element</th>
               <th>Node-set</th>
          </tr>
          <xsl:for-each select="/source//*">
               <xsl:call-template name="print"/>
          </xsl:for-each>
     </table>
</xsl:template>

<xsl:template name="print">
     <tr>
          <td>
               <xsl:value-of select="name()"/>
               <xsl:text> id = </xsl:text>
               <xsl:value-of select="./@id"/>
          </td>
          <td>
               <xsl:for-each select="following-sibling::*">
                    <xsl:if test="not(@id)">
                         <xsl:value-of select="name()"/>
                    </xsl:if>
                    <xsl:value-of select="./@id"/>
                    <xsl:text/>
               </xsl:for-each>
          </td>
     </tr>
</xsl:template>


</xsl:stylesheet>


XSLT stíluslap 6

XML forrás
<source>

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

</source>

Kimenet
<table border="1" cellpadding="6">
  <tr>
     <th colspan="2">Axis: preceding-sibling</th>
  </tr>
  <tr>
     <th>Element</th>
     <th>Node-set</th>
  </tr>
  <tr>
     <td>AAA id = a1</td>
     <td/>
  </tr>
  <tr>
     <td>BBB id = b1</td>
     <td/>
  </tr>
  <tr>
     <td>BBB id = b2</td>
     <td>b1</td>
  </tr>
  <tr>
     <td>AAA id = a2</td>
     <td>a1</td>
  </tr>
  <tr>
     <td>BBB id = b3</td>
     <td/>
  </tr>
  <tr>
     <td>BBB id = b4</td>
     <td>b3</td>
  </tr>
  <tr>
     <td>CCC id = c1</td>
     <td>b3b4</td>
  </tr>
  <tr>
     <td>CCC id = c2</td>
     <td/>
  </tr>
  <tr>
     <td>BBB id = b5</td>
     <td>b3b4c1</td>
  </tr>
  <tr>
     <td>CCC id = c3</td>
     <td/>
  </tr>
</table>

HTML nézet
Axis: preceding-sibling
Element Node-set
AAA id = a1
BBB id = b1
BBB id = b2 b1
AAA id = a2 a1
BBB id = b3
BBB id = b4 b3
CCC id = c1 b3b4
CCC id = c2
BBB id = b5 b3b4c1
CCC id = c3
XSLT stíluslap
<xsl:stylesheet version = '1.0'
     xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>

<xsl:template match="/">
     <table border="1" cellpadding="6">
          <tr>
               <th colspan="2">Axis: preceding-sibling</th>
          </tr>
          <tr>
               <th>Element</th>
               <th>Node-set</th>
          </tr>
          <xsl:for-each select="/source//*">
               <xsl:call-template name="print"/>
          </xsl:for-each>
     </table>
</xsl:template>

<xsl:template name="print">
     <tr>
          <td>
               <xsl:value-of select="name()"/>
               <xsl:text> id = </xsl:text>
               <xsl:value-of select="./@id"/>
          </td>
          <td>
               <xsl:for-each select="preceding-sibling::*">
                    <xsl:if test="not(@id)">
                         <xsl:value-of select="name()"/>
                    </xsl:if>
                    <xsl:value-of select="./@id"/>
                    <xsl:text/>
               </xsl:for-each>
          </td>
     </tr>
</xsl:template>


</xsl:stylesheet>


XSLT stíluslap 7

XML forrás
<source>

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

</source>

Kimenet
<table border="1" cellpadding="6">
  <tr>
     <th colspan="2">Axis: following</th>
  </tr>
  <tr>
     <th>Element</th>
     <th>Node-set</th>
  </tr>
  <tr>
     <td>AAA id = a1</td>
     <td>a2b3b4c1c2b5c3</td>
  </tr>
  <tr>
     <td>BBB id = b1</td>
     <td>b2a2b3b4c1c2b5c3</td>
  </tr>
  <tr>
     <td>BBB id = b2</td>
     <td>a2b3b4c1c2b5c3</td>
  </tr>
  <tr>
     <td>AAA id = a2</td>
     <td/>
  </tr>
  <tr>
     <td>BBB id = b3</td>
     <td>b4c1c2b5c3</td>
  </tr>
  <tr>
     <td>BBB id = b4</td>
     <td>c1c2b5c3</td>
  </tr>
  <tr>
     <td>CCC id = c1</td>
     <td>b5c3</td>
  </tr>
  <tr>
     <td>CCC id = c2</td>
     <td>b5c3</td>
  </tr>
  <tr>
     <td>BBB id = b5</td>
     <td/>
  </tr>
  <tr>
     <td>CCC id = c3</td>
     <td/>
  </tr>
</table>

HTML nézet
Axis: following
Element Node-set
AAA id = a1 a2b3b4c1c2b5c3
BBB id = b1 b2a2b3b4c1c2b5c3
BBB id = b2 a2b3b4c1c2b5c3
AAA id = a2
BBB id = b3 b4c1c2b5c3
BBB id = b4 c1c2b5c3
CCC id = c1 b5c3
CCC id = c2 b5c3
BBB id = b5
CCC id = c3
XSLT stíluslap
<xsl:stylesheet version = '1.0'
     xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>

<xsl:template match="/">
     <table border="1" cellpadding="6">
          <tr>
               <th colspan="2">Axis: following</th>
          </tr>
          <tr>
               <th>Element</th>
               <th>Node-set</th>
          </tr>
          <xsl:for-each select="/source//*">
               <xsl:call-template name="print"/>
          </xsl:for-each>
     </table>
</xsl:template>

<xsl:template name="print">
     <tr>
          <td>
               <xsl:value-of select="name()"/>
               <xsl:text> id = </xsl:text>
               <xsl:value-of select="./@id"/>
          </td>
          <td>
               <xsl:for-each select="following::*">
                    <xsl:if test="not(@id)">
                         <xsl:value-of select="name()"/>
                    </xsl:if>
                    <xsl:value-of select="./@id"/>
                    <xsl:text/>
               </xsl:for-each>
          </td>
     </tr>
</xsl:template>


</xsl:stylesheet>


XSLT stíluslap 8

XML forrás
<source>

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

</source>

Kimenet
<table border="1" cellpadding="6">
  <tr>
     <th colspan="2">Axis: preceding</th>
  </tr>
  <tr>
     <th>Element</th>
     <th>Node-set</th>
  </tr>
  <tr>
     <td>AAA id = a1</td>
     <td/>
  </tr>
  <tr>
     <td>BBB id = b1</td>
     <td/>
  </tr>
  <tr>
     <td>BBB id = b2</td>
     <td>b1</td>
  </tr>
  <tr>
     <td>AAA id = a2</td>
     <td>a1b1b2</td>
  </tr>
  <tr>
     <td>BBB id = b3</td>
     <td>a1b1b2</td>
  </tr>
  <tr>
     <td>BBB id = b4</td>
     <td>a1b1b2b3</td>
  </tr>
  <tr>
     <td>CCC id = c1</td>
     <td>a1b1b2b3b4</td>
  </tr>
  <tr>
     <td>CCC id = c2</td>
     <td>a1b1b2b3b4</td>
  </tr>
  <tr>
     <td>BBB id = b5</td>
     <td>a1b1b2b3b4c1c2</td>
  </tr>
  <tr>
     <td>CCC id = c3</td>
     <td>a1b1b2b3b4c1c2</td>
  </tr>
</table>

HTML nézet
Axis: preceding
Element Node-set
AAA id = a1
BBB id = b1
BBB id = b2 b1
AAA id = a2 a1b1b2
BBB id = b3 a1b1b2
BBB id = b4 a1b1b2b3
CCC id = c1 a1b1b2b3b4
CCC id = c2 a1b1b2b3b4
BBB id = b5 a1b1b2b3b4c1c2
CCC id = c3 a1b1b2b3b4c1c2
XSLT stíluslap
<xsl:stylesheet version = '1.0'
     xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>

<xsl:template match="/">
     <table border="1" cellpadding="6">
          <tr>
               <th colspan="2">Axis: preceding</th>
          </tr>
          <tr>
               <th>Element</th>
               <th>Node-set</th>
          </tr>
          <xsl:for-each select="/source//*">
               <xsl:call-template name="print"/>
          </xsl:for-each>
     </table>
</xsl:template>

<xsl:template name="print">
     <tr>
          <td>
               <xsl:value-of select="name()"/>
               <xsl:text> id = </xsl:text>
               <xsl:value-of select="./@id"/>
          </td>
          <td>
               <xsl:for-each select="preceding::*">
                    <xsl:if test="not(@id)">
                         <xsl:value-of select="name()"/>
                    </xsl:if>
                    <xsl:value-of select="./@id"/>
                    <xsl:text/>
               </xsl:for-each>
          </td>
     </tr>
</xsl:template>


</xsl:stylesheet>


XSLT stíluslap 9

XML forrás
<source>

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

</source>

Kimenet
<table border="1" cellpadding="6">
  <tr>
     <th colspan="2">Axis: attribute</th>
  </tr>
  <tr>
     <th>Element</th>
     <th>Node-set</th>
  </tr>
  <tr>
     <td>AAA id = a1</td>
     <td>idpos</td>
  </tr>
  <tr>
     <td>BBB id = b1</td>
     <td>id</td>
  </tr>
  <tr>
     <td>BBB id = b2</td>
     <td>id</td>
  </tr>
  <tr>
     <td>AAA id = a2</td>
     <td>id</td>
  </tr>
  <tr>
     <td>BBB id = b3</td>
     <td>id</td>
  </tr>
  <tr>
     <td>BBB id = b4</td>
     <td>id</td>
  </tr>
  <tr>
     <td>CCC id = c1</td>
     <td>id</td>
  </tr>
  <tr>
     <td>CCC id = c2</td>
     <td>id</td>
  </tr>
  <tr>
     <td>BBB id = b5</td>
     <td>id</td>
  </tr>
  <tr>
     <td>CCC id = c3</td>
     <td>id</td>
  </tr>
</table>

HTML nézet
Axis: attribute
Element Node-set
AAA id = a1 idpos
BBB id = b1 id
BBB id = b2 id
AAA id = a2 id
BBB id = b3 id
BBB id = b4 id
CCC id = c1 id
CCC id = c2 id
BBB id = b5 id
CCC id = c3 id
XSLT stíluslap
<xsl:stylesheet version = '1.0'
     xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>

<xsl:template match="/">
     <table border="1" cellpadding="6">
          <tr>
               <th colspan="2">Axis: attribute</th>
          </tr>
          <tr>
               <th>Element</th>
               <th>Node-set</th>
          </tr>
          <xsl:for-each select="/source//*">
               <xsl:call-template name="print"/>
          </xsl:for-each>
     </table>
</xsl:template>

<xsl:template name="print">
     <tr>
          <td>
               <xsl:value-of select="name()"/>
               <xsl:text> id = </xsl:text>
               <xsl:value-of select="./@id"/>
          </td>
          <td>
               <xsl:for-each select="attribute::*">
                    <xsl:if test="not(@id)">
                         <xsl:value-of select="name()"/>
                    </xsl:if>
                    <xsl:value-of select="./@id"/>
                    <xsl:text/>
               </xsl:for-each>
          </td>
     </tr>
</xsl:template>


</xsl:stylesheet>


XSLT stíluslap 10

XML forrás
<source>

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

</source>

Kimenet
<table border="1" cellpadding="6">
  <tr>
     <th colspan="2">Axis: namespace</th>
  </tr>
  <tr>
     <th>Element</th>
     <th>Node-set</th>
  </tr>
  <tr>
     <td>AAA id = a1</td>
     <td>xml</td>
  </tr>
  <tr>
     <td>BBB id = b1</td>
     <td>xml</td>
  </tr>
  <tr>
     <td>BBB id = b2</td>
     <td>xml</td>
  </tr>
  <tr>
     <td>AAA id = a2</td>
     <td>xml</td>
  </tr>
  <tr>
     <td>BBB id = b3</td>
     <td>xml</td>
  </tr>
  <tr>
     <td>BBB id = b4</td>
     <td>xml</td>
  </tr>
  <tr>
     <td>CCC id = c1</td>
     <td>xml</td>
  </tr>
  <tr>
     <td>CCC id = c2</td>
     <td>xml</td>
  </tr>
  <tr>
     <td>BBB id = b5</td>
     <td>xml</td>
  </tr>
  <tr>
     <td>CCC id = c3</td>
     <td>xml</td>
  </tr>
</table>

HTML nézet
Axis: namespace
Element Node-set
AAA id = a1 xml
BBB id = b1 xml
BBB id = b2 xml
AAA id = a2 xml
BBB id = b3 xml
BBB id = b4 xml
CCC id = c1 xml
CCC id = c2 xml
BBB id = b5 xml
CCC id = c3 xml
XSLT stíluslap
<xsl:stylesheet version = '1.0'
     xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>

<xsl:template match="/">
     <table border="1" cellpadding="6">
          <tr>
               <th colspan="2">Axis: namespace</th>
          </tr>
          <tr>
               <th>Element</th>
               <th>Node-set</th>
          </tr>
          <xsl:for-each select="/source//*">
               <xsl:call-template name="print"/>
          </xsl:for-each>
     </table>
</xsl:template>

<xsl:template name="print">
     <tr>
          <td>
               <xsl:value-of select="name()"/>
               <xsl:text> id = </xsl:text>
               <xsl:value-of select="./@id"/>
          </td>
          <td>
               <xsl:for-each select="namespace::*">
                    <xsl:if test="not(@id)">
                         <xsl:value-of select="name()"/>
                    </xsl:if>
                    <xsl:value-of select="./@id"/>
                    <xsl:text/>
               </xsl:for-each>
          </td>
     </tr>
</xsl:template>


</xsl:stylesheet>


XSLT stíluslap 11

XML forrás
<source>

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

</source>

Kimenet
<table border="1" cellpadding="6">
  <tr>
     <th colspan="2">Axis: self</th>
  </tr>
  <tr>
     <th>Element</th>
     <th>Node-set</th>
  </tr>
  <tr>
     <td>AAA id = a1</td>
     <td>a1</td>
  </tr>
  <tr>
     <td>BBB id = b1</td>
     <td>b1</td>
  </tr>
  <tr>
     <td>BBB id = b2</td>
     <td>b2</td>
  </tr>
  <tr>
     <td>AAA id = a2</td>
     <td>a2</td>
  </tr>
  <tr>
     <td>BBB id = b3</td>
     <td>b3</td>
  </tr>
  <tr>
     <td>BBB id = b4</td>
     <td>b4</td>
  </tr>
  <tr>
     <td>CCC id = c1</td>
     <td>c1</td>
  </tr>
  <tr>
     <td>CCC id = c2</td>
     <td>c2</td>
  </tr>
  <tr>
     <td>BBB id = b5</td>
     <td>b5</td>
  </tr>
  <tr>
     <td>CCC id = c3</td>
     <td>c3</td>
  </tr>
</table>

HTML nézet
Axis: self
Element Node-set
AAA id = a1 a1
BBB id = b1 b1
BBB id = b2 b2
AAA id = a2 a2
BBB id = b3 b3
BBB id = b4 b4
CCC id = c1 c1
CCC id = c2 c2
BBB id = b5 b5
CCC id = c3 c3
XSLT stíluslap
<xsl:stylesheet version = '1.0'
     xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>

<xsl:template match="/">
     <table border="1" cellpadding="6">
          <tr>
               <th colspan="2">Axis: self</th>
          </tr>
          <tr>
               <th>Element</th>
               <th>Node-set</th>
          </tr>
          <xsl:for-each select="/source//*">
               <xsl:call-template name="print"/>
          </xsl:for-each>
     </table>
</xsl:template>

<xsl:template name="print">
     <tr>
          <td>
               <xsl:value-of select="name()"/>
               <xsl:text> id = </xsl:text>
               <xsl:value-of select="./@id"/>
          </td>
          <td>
               <xsl:for-each select="self::*">
                    <xsl:if test="not(@id)">
                         <xsl:value-of select="name()"/>
                    </xsl:if>
                    <xsl:value-of select="./@id"/>
                    <xsl:text/>
               </xsl:for-each>
          </td>
     </tr>
</xsl:template>


</xsl:stylesheet>


XSLT stíluslap 12

XML forrás
<source>

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

</source>

Kimenet
<table border="1" cellpadding="6">
  <tr>
     <th colspan="2">Axis: descendant-or-self</th>
  </tr>
  <tr>
     <th>Element</th>
     <th>Node-set</th>
  </tr>
  <tr>
     <td>AAA id = a1</td>
     <td>a1b1b2</td>
  </tr>
  <tr>
     <td>BBB id = b1</td>
     <td>b1</td>
  </tr>
  <tr>
     <td>BBB id = b2</td>
     <td>b2</td>
  </tr>
  <tr>
     <td>AAA id = a2</td>
     <td>a2b3b4c1c2b5c3</td>
  </tr>
  <tr>
     <td>BBB id = b3</td>
     <td>b3</td>
  </tr>
  <tr>
     <td>BBB id = b4</td>
     <td>b4</td>
  </tr>
  <tr>
     <td>CCC id = c1</td>
     <td>c1c2</td>
  </tr>
  <tr>
     <td>CCC id = c2</td>
     <td>c2</td>
  </tr>
  <tr>
     <td>BBB id = b5</td>
     <td>b5c3</td>
  </tr>
  <tr>
     <td>CCC id = c3</td>
     <td>c3</td>
  </tr>
</table>

HTML nézet
Axis: descendant-or-self
Element Node-set
AAA id = a1 a1b1b2
BBB id = b1 b1
BBB id = b2 b2
AAA id = a2 a2b3b4c1c2b5c3
BBB id = b3 b3
BBB id = b4 b4
CCC id = c1 c1c2
CCC id = c2 c2
BBB id = b5 b5c3
CCC id = c3 c3
XSLT stíluslap
<xsl:stylesheet version = '1.0'
     xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>

<xsl:template match="/">
     <table border="1" cellpadding="6">
          <tr>
               <th colspan="2">Axis: descendant-or-self</th>
          </tr>
          <tr>
               <th>Element</th>
               <th>Node-set</th>
          </tr>
          <xsl:for-each select="/source//*">
               <xsl:call-template name="print"/>
          </xsl:for-each>
     </table>
</xsl:template>

<xsl:template name="print">
     <tr>
          <td>
               <xsl:value-of select="name()"/>
               <xsl:text> id = </xsl:text>
               <xsl:value-of select="./@id"/>
          </td>
          <td>
               <xsl:for-each select="descendant-or-self::*">
                    <xsl:if test="not(@id)">
                         <xsl:value-of select="name()"/>
                    </xsl:if>
                    <xsl:value-of select="./@id"/>
                    <xsl:text/>
               </xsl:for-each>
          </td>
     </tr>
</xsl:template>


</xsl:stylesheet>


XSLT stíluslap 13

XML forrás
<source>

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

</source>

Kimenet
<table border="1" cellpadding="6">
  <tr>
     <th colspan="2">Axis: ancestor-or-self </th>
  </tr>
  <tr>
     <th>Element</th>
     <th>Node-set</th>
  </tr>
  <tr>
     <td>AAA id = a1</td>
     <td>sourcea1</td>
  </tr>
  <tr>
     <td>BBB id = b1</td>
     <td>sourcea1b1</td>
  </tr>
  <tr>
     <td>BBB id = b2</td>
     <td>sourcea1b2</td>
  </tr>
  <tr>
     <td>AAA id = a2</td>
     <td>sourcea2</td>
  </tr>
  <tr>
     <td>BBB id = b3</td>
     <td>sourcea2b3</td>
  </tr>
  <tr>
     <td>BBB id = b4</td>
     <td>sourcea2b4</td>
  </tr>
  <tr>
     <td>CCC id = c1</td>
     <td>sourcea2c1</td>
  </tr>
  <tr>
     <td>CCC id = c2</td>
     <td>sourcea2c1c2</td>
  </tr>
  <tr>
     <td>BBB id = b5</td>
     <td>sourcea2b5</td>
  </tr>
  <tr>
     <td>CCC id = c3</td>
     <td>sourcea2b5c3</td>
  </tr>
</table>

HTML nézet
Axis: ancestor-or-self
Element Node-set
AAA id = a1 sourcea1
BBB id = b1 sourcea1b1
BBB id = b2 sourcea1b2
AAA id = a2 sourcea2
BBB id = b3 sourcea2b3
BBB id = b4 sourcea2b4
CCC id = c1 sourcea2c1
CCC id = c2 sourcea2c1c2
BBB id = b5 sourcea2b5
CCC id = c3 sourcea2b5c3
XSLT stíluslap
<xsl:stylesheet version = '1.0'
     xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>

<xsl:template match="/">
     <table border="1" cellpadding="6">
          <tr>
               <th colspan="2">Axis: ancestor-or-self </th>
          </tr>
          <tr>
               <th>Element</th>
               <th>Node-set</th>
          </tr>
          <xsl:for-each select="/source//*">
               <xsl:call-template name="print"/>
          </xsl:for-each>
     </table>
</xsl:template>

<xsl:template name="print">
     <tr>
          <td>
               <xsl:value-of select="name()"/>
               <xsl:text> id = </xsl:text>
               <xsl:value-of select="./@id"/>
          </td>
          <td>
               <xsl:for-each select="ancestor-or-self ::*">
                    <xsl:if test="not(@id)">
                         <xsl:value-of select="name()"/>
                    </xsl:if>
                    <xsl:value-of select="./@id"/>
                    <xsl:text/>
               </xsl:for-each>
          </td>
     </tr>
</xsl:template>


</xsl:stylesheet>