English | Français | >> Deutsch << | Magyar | 中文 | Polski ZVON > Tutorials > XSLT Tutorial
>> Seite 9 << | Zurück | Vor | Inhalt | Element-Index

"//" wird h?ufig in Pfadangaben verwendet. Wenn es am Anfang eines Pfades steht ist folgendes gemeint: Selektiere alle Knoten im Dokument des spezifierten Typs. ( XSLT Stylesheet 1 ). Taucht "//" in der Mitte einer Pfadangabe auf, so bedeutet es: selektiere alle Knoten innerhalb des durch // markierten Knoten welche den ersten Teil des Pfades enthalten ( XSLT Stylesheet 2 ).

XSLT Stylesheet 1

XML Quelltext
<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">
          <DDD id="d1"/>
     </CCC>
     <BBB id="b5">
          <CCC id="c2"/>
     </BBB>
</AAA>

</source>

Ausgabe
<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>

HTML-Ansicht
BBB id=b1
BBB id=b2
BBB id=b3
BBB id=b4
BBB id=b5
CCC id=c1
CCC id=c2
DDD id=d1
AAA id=a1
AAA id=a2
XSLT Stylesheet
<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>


XSLT Stylesheet 2

XML Quelltext
<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">
          <DDD id="d1"/>
     </CCC>
     <BBB id="b5">
          <CCC id="c2"/>
     </BBB>
</AAA>

</source>

Ausgabe
<div style="color:red">CCC id=c1</div>
<div style="color:red">CCC id=c2</div>
<div style="color:red">CCC id=c2</div>

HTML-Ansicht
CCC id=c1
CCC id=c2
CCC id=c2
XSLT Stylesheet
<xsl:stylesheet version = '1.0'
     xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>

<xsl:template match="/">
     <xsl:apply-templates select="/source/AAA//CCC"/>
     <xsl:apply-templates select="/source//AAA/BBB//*"/>
</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>