Announcement

Collapse
No announcement yet.

Element Name des vorhergehenden Elements

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Element Name des vorhergehenden Elements

    Hallo,

    eine einfache Frage:

    Ich iteriere über Kindelemente einer Hierarchie-Ebene mit

    <xsl:for-each select="child::node()>
    ...
    </xsl:for-each>

    . Die XML Datei sieht dabei wie folgt aus

    <Wurzel>
    <A/>
    <B/>
    <C/>
    </Wurzel>

    Wie komme ich nun an den Elementnamen des vorhergehenden Elements heran? Ich dachte das müsste mit <xsl:value-of select="preceding/name()" sein.

  • #2
    preceding soll wohl ein Achsenname und kein Elementname sein und mit child::node() würden auch Nicht-Elementknoten (u. a. Textknoten) behandelt. Vermutlich ist das Folgende gemeint (ergibt A und B als precedings von von B bzw. C):
    Code:
    <xsl:template match="Wurzel">
      <xsl:for-each select="child::*">
        <xsl:value-of select="preceding::*[1]/name()"/>
      </xsl:for-each>
    </xsl:template>

    Comment


    • #3
      Der select bringt leider Fehler

      Hallo, leider spuckt mir Altova einen Fehler bei der select Anfrage aus:

      <xsl:value-of select="preceding::*[1]/name()"/>

      Comment


      • #4
        Ich hatte es mit XSLT/XPath 2.0 probiert. Verwende alternativ name(preceding::*[1]).

        Comment

        Working...
        X