| |
Prädikate verfeinern die Knotenmenge durch bestimmte Bedingungen weiter. Dazu wird das Prädikat
für jeden Knoten der bereits selektierten Knotenmenge ausgewertet. Ist der Ausdruck wahr, so wird
der Knoten in die Knotenmenge übernommen [CD99]
Beispiel: child::item[attribute::id = 1234]
Mit child wird gesagt, dass alle Kinderknoten des Kontextknotens (hier bib) betrachtet werden
sollen. In dieser Menge werden nun die Elemente item mit dem Wert 1234 in dem Attribut id
selektiert.
Aus Datenbanksicht entspricht ein XPath-Ausdruck dem Selektionsoperator Ð in der relationalen
Algebra.
1.3.2 XSLT
Die Aufgabe von XSLT (XSL Transformations) ist die Überführung einer Quell-XML-Datei in eine
Ausgabedatei, wobei die XML-Informationen für den Endnutzer aufgearbeitet werden sollen (z.B. für
das Internet).
Ein XSL-Stylesheet ist ein XML-Dokument, welches eine Folge von Transformationsvorschriften,
oder auch Template Regeln genannt, enthält. Solch eine Regel besteht aus einem Muster und einem
Template. Der XSLT-Prozessor vergleicht die Elemente des Quelldokuments mit dem Muster und
wenn eine Übereinstimmung gefunden ist, so wird das dazugehörige Template ausgeführt. Ein
Template wird durch xsl:template definiert und das Muster wird beim Attribut match angegeben.
Dabei ist der Wert des match-Attributes ein XPath-Ausdruck, wobei nur child- und attribute-Achsen
erlaubt sind. Das Element xsl:apply-template ermöglicht eine rekursive Verarbeitung der
Kinderknoten des aktuellen Knotens. Dabei versucht der XSLT-Prozessor für jeden dieser
Kinderknoten ein passendes Template zu finden. Damit ein bestimmtes Element aus einer Menge von
Knoten selektiert werden kann, wird das Attribut select benutzt. Um die Werte einzelner Elemente
auszugeben, wird das Schlüsselwort xsl:value-of benutzt. Mit xsl:for-each werden alle
Kinderknoten eines Elementes vom gleichen Typ berücksichtigt.
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="bib">
<H1><U>Literaturliste</U></H1>
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="item">
- <xsl:value-of select="./titel"/>
<br/>
</xsl:template>
</xsl:stylesheet>
6
|  |
|
| |
|
|