XSL: Weitere Path-Ausdrücke

..index:: XPath (Beispiele)

Lernziel

Sie lernen weitere XPath-Ausdrücke kennen, die Sie im XPath-Visualizer ausprobieren koennen.

Handlungsanweisungen

Aufgaben

Speichern Sie bitte die XML-Datei (unten) ab und laden Sie diese in den Xpath-Visualizer.

  1. Selektieren Sie alle Nachnamen

  2. … nur den ersten Nachnamen

  3. die zweite PLZ

  4. vom ersten Eintrag den ersten Vornamen

  5. vom letzten Eintrag den “zugang”

  6. Alle Vornamen von denen, die in Kyritz wohnen.

  7. In welcher PLZ wohnt Heinz?

  8. Nachnamen von denen, die im deutschen Kyritz (und nicht evtl. im österreichischen) wohnen.

  9. PLZ von denen, die in Kyritz oder in Berlin wohnen

  10. Nachname von denen, die in einem Ort wohnen, indem “Ky” enthalten ist.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?xml version="1.0" encoding="UTF-8"?>
<adressen>
  <adresse land="D">
    <name zugang="public">
      <vn>Heinz</vn>
      <vn>Uwe</vn>
      <nn>Becker</nn>
    </name>
    <ort>Kyritz</ort>
    <plz>16866</plz>
  </adresse>
  <adresse land="AT">
    <name zugang="private">
      <vn>Uwe</vn>
      <nn>Seeler</nn>
    </name>
    <ort>Hamburg</ort>
    <plz>22222</plz>
  </adresse>
  <adresse land="D">
    <name zugang="public">
      <vn>Heinz</vn>
      <nn>Nautokat</nn>
    </name>
    <ort>Berlin</ort>
    <plz>14456</plz>
  </adresse>
</adressen>

Die XML-Datei

hier die XML-Datei, auf die die XPath-Ausdrücke angewendet werden:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
<?xml version="1.0"?>
<library>
  <book edition="3rd" year="2000">
    <title>Programming Perl</title>
    <author>Larry Wall</author>
    <author>Tom Christiansen</author>
    <author>Jon Orwant</author>
  </book>
  <book year="1998">
    <title>Advanced Perl Programming</title>
    <author>Sriram Srinivasan</author>
  </book>
</library>

Neben den unten dargestellten Pfadausdrücken, finden Sie im Word-Wide-Web weitere Lösungen.

Beispiele für XPath-Ausdrücke

alle author-Kinder des aktuellen Knotens

author

title-Element unterhalb von book

book/title

library-Element unterhalb der Wurzel

/library

alle title-Elemente im Dokument

//title

alle year-Attribute

//book/@year

alle Bücher aus dem Jahr 2000

//book[@year='2000']

erste author-Elemente

//author[position()=1]

erstes author-Element des ersten Buches

/library/book[1]/author[1]

Titel aller Bücher aus 2000

//book[@year='2000']/title

Titel aller Bücher aus 1998 und 2000

/library/book[@year='2000' or @year='1998']/title

Titel der Bücher, die “Perl” im Titel enthalten

/library/book[contains(title,'Perl')]/title

Den Textknoten der Titel auslesen

/book/title/text()

Lösung zu den Aufgaben

1. Selektieren Sie alle Nachnamen

adressen/adresse/name/nn

oder

//nn

2. … nur den ersten Nachnamen

adressen/adresse[1]/name/nn

3. die zweite PLZ

adressen/adresse[2]/plz

4. vom ersten Eintrag den ersten Vornamen

adressen/adresse[1]/name/vn[1]

5. vom letzten Eintrag den “zugang”

adressen/adresse[last()]/name/@zugang

6. Alle Vornamen von denen, die in Kyritz wohnen.

/adressen/adresse[ort='Kyritz']/name/vn

7. In welcher PLZ wohnt Heinz?

/adressen/adresse[name/vn='Heinz']/plz
/adressen/adresse/name[vn='Heinz']/../plz
  1. Nachnamen von denen, die im deutschen Kyritz (und nicht evtl. im österreichischen) wohnen.

/adressen/adresse[ort='Kyritz' and @land='D']/name/nn

9. PLZ von denen, die in Kyritz oder in Berlin wohnen.

adressen/adresse[ort='Kyritz' or ort='Berlin']/plz

10. Nachname von denen, die in einem Ort wohnen, in dem der “Ky” enthalten ist.

adressen/adresse[contains(ort,'Ky')]/name/nn