要素と属性を追加する XQuery
XML サンプルドキュメント
以下の例でもこの「books.xml」ドキュメントを引き続き使用します (上記の章で使用したのと同じ XML ファイル)。
ブラウザで「books.xml」ファイルを表示します。
結果に要素と属性を追加する
前のセクションで見たように、結果内の入力ファイルから要素と属性を参照できます:
for $x in doc("books.xml")/bookstore/ book/title
order by $x
return $x
order by $x
return $x
上記の XQuery 式は、次のように結果の title 要素と lang 属性を参照します。
<title lang="en"> ;Everyday Italian< ;/title>
<title lang="ja">ハリー ポッター</title>
<title lang="ja">XML の学習</title>
<title lang="ja" >XQuery Kick Start</title>
<title lang="ja">ハリー ポッター</title>
<title lang="ja">XML の学習</title>
<title lang="ja" >XQuery Kick Start</title>
上記の XQuery 式は、入力ドキュメントで記述されているのと同じ方法で title 要素を返します。
次に、独自の要素と属性を結果に追加したいと思います。
HTML 要素とテキストを追加する
次に、結果に HTML 要素を追加します。結果を HTML リストに入れます:
<html>
<body>
<h1>Bookstore</h1>
<ul>
{
for $x in doc(" Books.xml")/bookstore/book
$x/title で注文
return <li>{data($x/title)}。カテゴリ: {data($x/@category)}</li>
}
</ul>
</body>
</html>
<body>
<h1>Bookstore</h1>
<ul>
{
for $x in doc(" Books.xml")/bookstore/book
$x/title で注文
return <li>{data($x/title)}。カテゴリ: {data($x/@category)}</li>
}
</ul>
</body>
</html>
上記の XQuery 式は次の結果を生成します:
<html>
<body>
<h1> ;本屋</h1>
<ul>
<li>毎日のイタリア語。カテゴリ:料理</li>
<li>ハリー・ポッター。カテゴリ:子供</li>
<li>XMLの学習。カテゴリ: WEB</li>
<li>XQuery キック スタート。
<body>
<h1> ;本屋</h1>
<ul>
<li>毎日のイタリア語。カテゴリ:料理</li>
<li>ハリー・ポッター。カテゴリ:子供</li>
<li>XMLの学習。カテゴリ: WEB</li>
<li>XQuery キック スタート。
HTML 要素に属性を追加します
次に、HTML リストで category 属性を class 属性として使用する必要があります:
<html>
<body>
<h1>Bookstore</h1>
<ul>
{
$x で doc("books.xml")/bookstore/book
$x/title で注文
return <li class="{data($x/@category)}" >{data($x/title)}</li>
}
</ul>
</body>
</html>
<body>
<h1>Bookstore</h1>
<ul>
{
$x で doc("books.xml")/bookstore/book
$x/title で注文
return <li class="{data($x/@category)}" >{data($x/title)}</li>
}
</ul>
</body>
</html>
上記の XQuery 式は次の結果を生成します:
<html>
<body>
<h1>本屋</h1>
<ul>
<li class="COOKING">毎日のイタリアン</li>
<li class = "CHILDREN">ハリー ポッター</li>
<li class="WEB">XML の学習</li>
<li class="WEB">XQuery キック スタート</li>
< ul>
</body>
</html>
<body>
<h1>本屋</h1>
<ul>
<li class="COOKING">毎日のイタリアン</li>
<li class = "CHILDREN">ハリー ポッター</li>
<li class="WEB">XML の学習</li>
<li class="WEB">XQuery キック スタート</li>
< ul>
</body>
</html>