Einführung in die XML-Technologien XPath, XSLT und XQuery/XQuery/Übungen FLWOR - Ausdrücke
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
<language>XQuery</language>
Grundlage der Übungsaufgaben, ist das aus den Beispielen bekannte XML-Dokument.
<code id="4efb101804680">
<filmliste>
<film id="1">
<titel>Die Rueckkehr der Jedi-Ritter</titel>
<genre>Science-Fiction</genre>
<oscars>1</oscars>
<regie>
<regisseur>Richard</regisseur>
</regie>
<jahr>1983</jahr>
</film>
<film id="2">
<titel>Sin City</titel>
<genre>Thriller</genre>
<oscars>0</oscars>
<regie>
<regisseur>Frank Miller</regisseur>
<regisseur>Robert Rodriguez</regisseur>
<regisseur>Quentin Tarantino</regisseur>
</regie>
<jahr>2005</jahr>
</film>
<film id="3">
<titel>Forrest Gump</titel>
<genre>Drama</genre>
<oscars>6</oscars>
<regie>
<regisseur>Robert Zemeckis</regisseur>
</regie>
<jahr>1994</jahr>
</film>
<film id="4">
<titel>The Dark Knight</titel>
<genre>Action</genre>
<oscars>2</oscars>
<regie>
<regisseur>Christopher Nolan</regisseur>
</regie>
<jahr>2008</jahr>
</film>
<film id="5">
<titel>Avatar</titel>
<genre>Science-Fiction</genre>
<oscars>3</oscars>
<regie>
<regisseur>James Cameron</regisseur>
</regie>
<jahr>2009</jahr>
</film>
<film id="6">
<titel>"2012"</titel>
<genre>Katastrophen</genre>
<oscars>0</oscars>
<regie>
<regisseur>Roland Emmerich</regisseur>
</regie>
<jahr>2009</jahr>
</film>
</filmliste>
</code>
1. Geben Sie für alle Filme, die vor dem Jahr 2006 gedreht wurden, den Titel an!
<run id="4efb3922aeadb">
</run>
<popup name="Lösung">
for $film in //filmliste/film
where $film/jahr < 2006
return $film/titel
</popup>
2. Geben Sie alle Science-Fiction Filme nach dem Erscheinungsjahr aufsteigend sortiert aus!
<run id="4efb12de32c4a">
</run>
<popup name="Lösung">
for $film in //filmliste/film
where $film/genre = "Science-Fiction"
order by $film/jahr ascending
return $film/titel
</popup>
3. In welchem Film führte im Jahr 2009 James Cameron Regie?
<run id="4efb12de32cd6">
</run>
<popup name="Lösung">
for $film in //filmliste/film
where $film/jahr = 2009 and $film//regisseur = "James Cameron"
return $film/titel
</popup>
4. Generieren Sie mit Hilfe von XQuery folgendes HTML-Dokument:
<html>
<head>
<title>Filmübersicht</title>
</head>
<body>
<h2>Filmübersicht</h2>
<table>
<colgroup>
<col width="500"/>
<col width="100"/>
</colgroup>
<tr>
<th align="left">Filmtitel</th>
<th align="left">Erscheinungsjahr</th>
</tr>
<tr>
<td>Avatar</td>
<td>2009</td>
</tr>
<tr>
<td>"2012"</td>
<td>2009</td>
</tr>
<tr>
<td>The Dark Knight</td>
<td>2008</td>
</tr>
<tr>
<td>Sin City</td>
<td>2005</td>
</tr>
<tr>
<td>Forrest Gump</td>
<td>1994</td>
</tr>
<tr>
<td>Die Rueckkehr der Jedi-Ritter</td>
<td>1983</td>
</tr>
</tr>
</table>
</body>
</html>
<popup name="Seitenquelltext">
<nowiki>
<html>
<head>
<title>Filmübersicht</title>
</head>
<body>
<h2>Filmübersicht</h2>
<table>
<colgroup>
<col width="500"/>
<col width="100"/>
</colgroup>
<tr>
<th align="left">Filmtitel</th>
<th align="left">Erscheinungsjahr</th>
</tr>
<tr>
<td>Avatar</td>
<td>2009</td>
</tr>
<tr>
<td>"2012"</td>
<td>2009</td>
</tr>
<tr>
<td>The Dark Knight</td>
<td>2008</td>
</tr>
<tr>
<td>Sin City</td>
<td>2005</td>
</tr>
<tr>
<td>Forrest Gump</td>
<td>1994</td>
</tr>
<tr>
<td>Die Rueckkehr der Jedi-Ritter</td>
<td>1983</td>
</tr>
/table>
</body>
</html>
</nowiki>
</popup>
<run id="4efb3922aeb68">
</run>
<popup name="Lösung">
<nowiki>
<html>
<head>
<title>Filmübersicht</title>
</head>
<body>
<h2>Filmübersicht</h2>
<table>
<colgroup>
<col width="700"/>
<col width="100"/>
</colgroup>
<tr>
<th align="left">Filmtitel</th>
<th align="left">Erscheinungsjahr</th>
</tr>
{
for $film in //filmliste/film
order by $film/jahr descending
return <tr><td>{data($film/titel)}</td><td>{data($film/jahr)}</td></tr>
}
</table>
</body>
</html>
</nowiki>
</popup>