XQuery hinzufügen von Elementen und Attributen

XML-Beispiel-Dokument

Wir werden in den folgenden Beispielen diesen "books.xml"-Dokument (und das XML-Dokument, das im vorherigen Kapitel verwendet wurde) verwenden.

Sehen Sie "books.xml" im Browser an.

Elemente und Attribute zu den Ergebnissen hinzufügen

Wie im vorherigen Abschnitt gezeigt, können wir auf Elemente und Attribute im Eingangsdocument im Ergebnis verweisen:

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

Die obige XQuery-Ausdrucksformel bezieht sich auf title-Elemente und die lang-Attribut wie folgt im Ergebnis:

<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>

Die obige XQuery-Ausdrucksformel gibt title-Elemente zurück, die auf die gleiche Weise beschrieben sind, wie sie im Eingangsdocument vorkommen.

Jetzt möchten wir unsere eigenen Elemente und Attribute zu den Ergebnissen hinzufügen!

Hinzufügen von HTML-Elementen und Text

Jetzt möchten wir HTML-Elemente zu den Ergebnissen hinzufügen. Wir werden die Ergebnisse in einer HTML-Liste platzieren:

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

Die obige XQuery-Ausdrucksformel erzeugt das folgende Ergebnis:

<html>
<body>
<h1>Buchhandlung</h1>
<ul>
<li>Everyday Italian. Kategorie: KÜCHE</li>
<li>Harry Potter. Kategorie: KINDER</li>
<li>Learning XML. Kategorie: WEB</li>
<li>XQuery Kick Start. Kategorie: WEB</li>
</ul>
</body>
</html>

Fügen Sie HTML-Elementen Attribute hinzu

Nächste, wir verwenden das Attribut category als class-Attribut der HTML-Liste:

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

Die obige XQuery-Ausdrücke können das folgende Ergebnis erzeugen:

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