ancestor-or-self::*

ancestor-or-self::* gibt Ihnen eine Nodeliste aller vorhergehender Knoten bis zum Root-Element, und zwar in der Reihenfolge, dass der Rootnode zuerst ausgegeben wird.

XPath_ancestorsorself.jpg


 <xsl:template match="/">
  <ergebnis>
   <xsl:for-each
        select="/Orte/Ort[1]/Mensch[4]
                /ancestor-or-self::*">
    <e nr="{position()}">
     <xsl:call-template name="generateXPath"/>
    </e>
   </xsl:for-each>
  </ergebnis>
 </xsl:template>

Das Resultat lautet dann:


<ergebnis>
  <e nr="1">/Orte</e>
  <e nr="2">/Orte/Ort[1]</e>
  <e nr="3">/Orte/Ort[1]/Mensch[4]</e>
</ergebnis>

Get XML -- Technologien, Grundlagen, Validierung, Auswertung now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.