Announcement

Collapse
No announcement yet.

Abfrage nächstes Element

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

  • Abfrage nächstes Element

    Hallo Experten,

    ich bin Anfänger in XSLT und wollte wissen, ob folgendes geht:

    XML Dokumentenstruktur:

    Code:
    <documenttype>
    	<elements>
    		<element id="a">
    		<element id="b">
    		<element id="c">
    		<element id="b">
    		<element id="c">
    		<element id="b">
    		<element id="c">	
    		<element id="a">
    		<element id="b">
    		<element id="c">
    	</elements>
    </documenttype>
    wie bekomme ich die elmente mit der id b und c per Schleife bis das nächste element mit der id a kommt? Vielen Dank!

  • #2
    Im Folgenden sollte das Prinzip anhand von HTML-Listen deutlich werden:
    Code:
    <xsl:template match="documenttype">
      <xsl:apply-templates select="elements"/>
    </xsl:template>
    
    <xsl:template match="elements">
      <xsl:apply-templates select="element[@id = 'a']"/>
    </xsl:template>
      
    <xsl:template match="element">
      <ul>
        <xsl:for-each select="following-sibling::element[@id != 'a']">
          <li><xsl:value-of select="@id"/></li>
        </xsl:for-each>
      </ul>
    </xsl:template>
    Ergebnis:
    Code:
    <ul>
      <li>b</li>
      <li>c</li>
      <li>b</li>
      <li>c</li>
      <li>b</li>
      <li>c</li>
      <li>b</li>
      <li>c</li>
    </ul>
    <ul>
      <li>b</li>
      <li>c</li>
    </ul>
    bezogen auf dieses XML-Dokument:
    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <documenttype>
      <elements>
        <element id="a"/>
        <element id="b"/>
        <element id="c"/>
        <element id="b"/>
        <element id="c"/>
        <element id="b"/>
        <element id="c"/>
        <element id="a"/>
        <element id="b"/>
        <element id="c"/>
      </elements>
    </documenttype>
    Zuletzt editiert von Thomas Meinike; 20.11.2008, 15:14.

    Comment

    Working...
    X