XQuery要素と属性の追加
- 前のページ XQuery文法
- 次のページ XQuery チャート
XMLインスタンスドキュメント
以下の例では、この「books.xml」ドキュメント(前の章で使用したXMLファイルと同じ)を使用し続けます。
結果に要素と属性を追加する
前節で見たように、結果にインプットファイルの要素と属性を参照することができます:
for $x in doc("books.xml")/bookstore/book/title order by $x return $x
上記のXQuery表現は、結果でtitle要素とlang属性を参照し、以下のようにします:
<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>
上記の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)}. カテゴリ: {data($x/@category)}</li> } </ul> </body> </html>
上記のXQuery表現は以下の結果を生成します:
<html> <body> <h1>Bookstore</h1> <ul> <li>Everyday Italian. カテゴリ:料理</li> <li>Harry Potter. カテゴリ: 子供</li> <li>Learning XML. カテゴリ: WEB</li> <li>XQuery Kick Start. カテゴリ: WEB</li> </ul> </body> </html>
HTML要素に属性を追加
次に、category属性をHTMLリストのclass属性として使用する方法を見てみましょう:
<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> } </ul> </body> </html>
上記のXQuery表現は以下の結果を生成できます:
<html> <body> <h1>Bookstore</h1> <ul> <li class="COOKING">Everyday Italian</li> <li class="CHILDREN">ハリ・ポッター</li> <li class="WEB">Learning XML</li> <li class="WEB">XQuery Kick Start</li> </ul> </body> </html>
- 前のページ XQuery文法
- 次のページ XQuery チャート