XQuery FLWOR + HTML

XML 实例文档

我们将在下面的例子中继续使用这个 "books.xml" 文档(与上一节中的文件相同)。

在一个 HTML 列表中提交结果

请看下面的 XQuery FLWOR 表达式:

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

上面的表达式会选取 bookstore 元素下的 book 元素下的所有 title 元素,并以字母顺序返回 title 元素。

现在,我们希望使用 HTML 列表列出我们的书店中所有的书目。我们向 FLWOR 表达式添加 <ul> 和 <li> 标签:

  1. <ul>
  2. {
  3. for $x in doc("books.xml")/bookstore/book/title
  4. order by $x
  5. return <li>{$x}</li>
  6. }
  7. </ul>

以上代码的结果:

  1. <ul>
  2. <li><title lang="en">Everyday Italian</title></li>
  3. <li><title lang="en">Harry Potter</title></li>
  4. <li><title lang="en">Learning XML</title></li>
  5. <li><title lang="en">XQuery Kick Start</title></li>
  6. </ul>

现在我们希望去除 title 元素,而仅仅显示 title 元素内的数据。

  1. <ul>
  2. {
  3. for $x in doc("books.xml")/bookstore/book/title
  4. order by $x
  5. return <li>{data($x)}</li>
  6. }
  7. </ul>

结果将是一个 HTML 列表:

  1. <ul>
  2. <li>Everyday Italian</li>
  3. <li>Harry Potter</li>
  4. <li>Learning XML</li>
  5. <li>XQuery Kick Start</li>
  6. </ul>