XQuery Добавление элементовиатрибутов


Пример XML-документа

Мы продолжим использовать этот документ "books.xml" в примерах ниже (тот же XML-файл, использованный в предыдущих главах).

。


Добавление элементов и атрибутов в результаты

Как мы видели в предыдущем разделе, мы можем ссылаться на элементы и атрибуты из входного файла в результатах:

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

Приведённое выше выражение XQuery будет ссылаться на элемент title и атрибут lang в результатах, как показано ниже:

Everyday Italian
Harry Potter
Изучение XML
XQuery Kick Start

Приведённое выше выражение XQuery возвращает элементы title так же, как они описаны во входном документе.

Теперь мы хотим добавить свои собственные элементы и атрибуты в результаты!

Добавление HTML-элементов и текста

Теперь мы хотим добавить HTML-элементы в результаты. Мы поместим результаты в HTML-список:

<html>
<body>

<h1>Bookstore</h1>

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

</body>
</html>

Приведённое выше выражение XQuery сгенерирует следующий результат:

<html>
<body>

<h1>Bookstore</h1>

<ul>
<li>Everyday Italian. Category: COOKING</li>
<li>Harry Potter. Category: CHILDREN</li>
<li>Learning XML. Category: WEB</li>
<li>XQuery Kick Start. Category: WEB</li>
</ul>

</body>
</html>

Добавление атрибутов к HTML-элементам

Далее мы будем использовать атрибут category в качестве атрибута class в HTML-списке:

<html>
<body>

<h1>Bookstore</h1>

<ul>
{
for $x in doc("books.xml")/bookstore/book
order by $x/title
return
  • {data($x/title)}

  • }
    </ul>

    </body>
    </html>

    Приведённое выше выражение XQuery может сгенерировать следующий результат:

    <html>
    <body>
    <h1>Bookstore</h1>

    <ul>
  • Everyday Italian

  • Harry Potter

  • Learning XML

  • XQuery Kick Start

  • </ul>

    </body>
    </html>
    Другие расширения