Hans: Tiefe von verschachtelten Elementen rausfinden

Hallo,

ich möchte ein XML-Dokument formatieren das z.B. diese Struktur hat:

<bla>
  <elemente>
    <item />
    <elemente>
      <item />
      <item />
    </elemente>
  </elemente>
</bla>

"<elemente>" kann also weitere "<elemente>" enhalten. Wie bekomme ich nun die Verschachtelungstiefe raus wenn ich mit XSLT durch alle "<elemente>" iteriere? Um z.B. alle "<item>"s mit ungerader Tiefe grün und alle mit gerader blau darzustellen? Gibts dafür irgendeinen XPath-Ausdruck der mir bisher entgangen ist?

Grüße,

Hans

  1. Hallo,

    "<elemente>" kann also weitere "<elemente>" enhalten. Wie bekomme ich nun die Verschachtelungstiefe raus wenn ich mit XSLT durch alle "<elemente>" iteriere? Um z.B. alle "<item>"s mit ungerader Tiefe grün und alle mit gerader blau darzustellen?

    Probiere es so (ich hoffe, das richtig verstanden zu haben):

    <xsl:template match="/">

    xsl:apply-templates/

    </xsl:template>

    <xsl:template match="elemente//item">

    xsl:choose

    <xsl:when test="count(../item) mod 2 = 0">
          <p style="color: #00C; background-color: #FFF">item mit gerade Verschachtelungstiefe unterhalb von element</p>
        </xsl:when>

    xsl:otherwise
          <p style="color: #090; background-color: #FFF">item mit ungerader Verschachtelungstiefe unterhalb von element</p>
        </xsl:otherwise>

    </xsl:choose>

    </xsl:template>

    MfG, Thomas