XSL-Übersicht / xsl:fork

xsl:fork

xsl:fork

xsl:fork erlaubt, das Streaming von XML-Input in mehrere Prozesse aufzuteilen. Das ist vorteilhaft bei Datenstrukturen, deren Streaming nicht problemlos verläuft.

Im folgenden Beispiel werden mehrere einzelne durch ausgewertet. Teil des xsl:iterate ist eine Abbruchbedingung mit xsl:break.


<xsl:fork>
  <xsl:sequence> 
    <xsl:iterate select="/Orte/Ort[2]/Mensch">
      <MENSCH NN="{name}" 
              VN="{vorname}" 
              WO="{../name}" EK="{Gehalt}"/>
      <xsl:if test="xs:decimal(Gehalt) &gt; 700">
        <xsl:break />
      </xsl:if>
    </xsl:iterate>
  </xsl:sequence>
  <xsl:sequence>  
    <xsl:iterate select="/Orte/Ort/Mensch">
      <PERSON NN="{name}" 
              VN="{vorname}" 
              WO="{../name}" 
              EK="{Gehalt}"/>
      <xsl:if test="sum(Kauf/xs:decimal(Gesamt)) &lt; xs:decimal(Gehalt)">
        <xsl:break />
      </xsl:if>
    </xsl:iterate>
  </xsl:sequence>
</xsl:fork>

Im Ergebnis lässt sich ablesen, wie weit welche xsl:sequence über welches xsl:iterate läuft.


<root>
   <MENSCH NN="Rhodos" VN="Rudi" WO="Darmstadt" EK="333.33"/>
   <MENSCH NN="Kolos" VN="Karl" WO="Darmstadt" EK="456"/>
   <MENSCH NN="Sinnlos" VN="Simone" WO="Darmstadt" EK="876.54"/>
   <PERSON NN="Holzflos" VN="Hugo" WO="Neustadt" EK="234.56"/>
   <PERSON NN="Nixlos" VN="Nicole" WO="Neustadt" EK="1234.56"/>
</root>

wg / 5. April 2018



Fragen? Anmerkungen? Tipps?

Bitte nehmen Sie Kontakt zu mir auf.






Vielen Dank für Ihr Interesse an meiner Arbeit.


V.i.S.d.P.: Wilfried Grupe * Klus 6 * 37643 Negenborn

☎ 0151. 750 360 61 * eMail: info10@wilfried-grupe.de

www.wilfried-grupe.de/xsl_fork.html