Home
Über mich
Blog
Veröffentlichungen
IT-Trainings
Impressum


XPath: Sequence - Funktionen

Zusammenfassung:

In XPath 2.0 kommen (gegenüber XPath 1.0) die mächtigen Sequenzen hinzu, auf denen wiederum zahlreiche Funktionen in XPath 2.0 und XPath 3.0 beruhen.

XPath: Sequence - Funktionen

Es ist interessant, sich mit den Alternativen zu befassen, die XPath 2.0, XSL 2.0 (und ihre verwandte Technik XQuery) gegenüber XPath 1.0 und XSLT 1.0 zu bieten haben. Diese Alternativen führen uns in den interessanten Themenkomplex von Sequence Constructor und Filter Expressions, mit deren Hilfe etliche Praxisprobleme leichter lösbar werden. Die folgenden Beispiele sollen das verdeutlichen, auch wenn sich die Aufgabenstellungen mit anderen Ansätzen möglicherweise einfacher lösen lassen. Als Datenquelle für die folgenden Beispiele steht Ihnen www.wilfried-grupe.de/Orte_Elemente.xml zur Verfügung.

  <xsl:template name="sequencedemo">
    <Ergebnis>
    <xsl:for-each select="1 to 5, (20 to 200)[. mod 19 = 0], 
      'Meier', 'Schulze', 'Bauer', //vorname, 
       current-dateTime(), current-date() ">
      <item>
      <xsl:attribute name="castable">
      <xsl:choose>        
        <xsl:when test=". castable as xs:date">date</xsl:when>
        <xsl:when test=". castable as xs:dateTime">dateTime</xsl:when>
        <xsl:when test=". castable as xs:integer">integer</xsl:when>            
        <xsl:when test=". castable as xs:string">string</xsl:when>      
      </xsl:choose>
      </xsl:attribute>
      <xsl:value-of select="."/>
      </item>
    </xsl:for-each>
    </Ergebnis>
  </xsl:template>

Das Ergebnis dieser Logik lautet dann:

  <Ergebnis>
      <item castable="integer">1</item>
      <item castable="integer">2</item>
      <item castable="integer">3</item>
      <item castable="integer">4</item>
      <item castable="integer">5</item>
      <item castable="integer">38</item>
      <item castable="integer">57</item>
      <item castable="integer">76</item>
      <item castable="integer">95</item>
      <item castable="integer">114</item>
      <item castable="integer">133</item>
      <item castable="integer">152</item>
      <item castable="integer">171</item>
      <item castable="integer">190</item>
      <item castable="string">Meier</item>
      <item castable="string">Schulze</item>
      <item castable="string">Bauer</item>
      <item castable="string">Hugo</item>
      <item castable="string">Nicole</item>
      <item castable="string">Stefan</item>
      <item castable="string">Stefan</item>
      <item castable="string">Siggi</item>
      <item castable="string">Heini</item>
      <item castable="string">Rudi</item>
      <item castable="string">Karl</item>
      <item castable="string">Simone</item>
      <item castable="string">Horst</item>
      <item castable="string">Werner</item>
      <item castable="string">Ludwig</item>
      <item castable="string">Willi</item>
      <item castable="string">Rita</item>
      <item castable="string">Susi</item>
      <item castable="string">Lotte</item>
      <item castable="string">Betty</item>
      <item castable="string">Martin</item>
      <item castable="string">Liane</item>
      <item castable="date">2017-09-24T16:51:16.3+02:00</item>
      <item castable="date">2017-09-24+02:00</item>
   </Ergebnis>

qrpic/sequence.jpg

wg / 3. Oktober 2017




Fragen? Anmerkungen? Tips?

Bitte nehmen Sie Kontakt zu mir auf (info10@wilfried-grupe.de).



Vielen Dank für Ihr Interesse an meiner Arbeit.


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

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