XQuery - Elemente und Attribute hinzufügen

XML-Beispiel-Dokument

Wir werden im folgenden Beispiel mit dieser "books.xml"-Datei fortfahren (wie im vorherigen Kapitel und der verwendeten XML-Datei).

Sehen Sie "books.xml"-Datei in Ihrem Browser an.

Elemente und Attribute zum Ergebnis hinzufügen

Wie im vorherigen Abschnitt gezeigt, können wir in den Ergebnissen auf Elemente und Attribute der Eingabedatei verweisen:

for $x in doc("books.xml")/bookstore/book/title
order by $x
return $x

Die obige XQuery-Ausdrucksformel referenziert die title-Elemente und den Attribut lang im Ergebnis, wie folgt:

<title lang="en">Everyday Italian</title>
<title lang="en">Harry Potter</title>
<title lang="en">Learning XML</title>
<title lang="en">XQuery Kick Start</title>

Der obige XQuery-Ausdrucksformel gibt die title-Elemente zurück, die auf dieselbe Weise beschrieben werden, wie sie im Eingangsdocument vorkommen.

Jetzt fügen wir unsere eigenen Elemente und Attribute zu den Ergebnissen hinzu!

Fügen Sie HTML-Elemente und Text hinzu

Jetzt fügen wir HTML-Elemente zu den Ergebnissen hinzu. Wir platzieren die Ergebnisse in einer HTML-Liste:

<html>
<body>
<h1>Bookstore</h1>
<ul>
{
for $x in doc("books.xml")/bookstore/book
order by $x/title
return <li>{data($x/title)}. Kategorie: {data($x/@category)}</li>
}
<li class="WEB">XQuery Kick Start</li>
</ul>
</body>

Der obige XQuery-Ausdrucksformel generiert die folgenden Ergebnisse:

<html>
<body>
<h1>Bookstore</h1>
<ul>
<li>Everyday Italian. Kategorie: KÜCHE</li>
<li>Harry Potter. Kategorie: KINDERBUCH</li>
<li>Learning XML. Kategorie: WEB</li>
<li>XQuery Kick Start. Kategorie: WEB</li>
<li class="WEB">XQuery Kick Start</li>
</ul>
</body>

Fügen Sie Eigenschaften zu HTML-Elementen hinzu

Nachfolgend verwenden wir den Attribut category als die class-Attribut des HTML-Listenelements:

<html>
<body>
<h1>Bookstore</h1>
<ul>
{
for $x in doc("books.xml")/bookstore/book
order by $x/title
return <li class="{data($x/@category)}">{data($x/title)}</li>
}
<li class="WEB">XQuery Kick Start</li>
</ul>
</body>

Die obige XQuery-Ausdrucksformel kann die folgenden Ergebnisse generieren:

<html>
<body>
<h1>Bookstore</h1>
<ul>
<li class="COOKING">Everyday Italian</li>
  • Harry Potter
  • <li class="CHILDREN">Harry Potter</li> <li class="WEB">Learning XML</li> <li class="WEB">XQuery Kick Start</li> </ul> </body>