XQuery FLWOR + HTML学习笔记

FLWOR表达式

FLWOR是XQuery中非常重要的概念之一,它是由以下几个子句构成的:

  1. for:定义一个变量,并在指定的序列上迭代。
  2. let:定义一个变量,并将其值与表达式匹配。
  3. where:过滤序列中的元素。
  4. order by:按指定的顺序对序列中的元素进行排序。
  5. return:返回选择的元素。

示例:

Copy Code
for $book in doc("books.xml")//book let $price := $book/price where $price > 50 order by $price descending return $book/title

该表达式从XML文档中选择所有价格大于50的书籍,并按价格从高到低排序,最后返回书籍标题。

HTML

HTML是超文本标记语言,用于创建Web页面。一个完整的HTML文件通常由以下几个部分组成:

  1. DOCTYPE声明:告诉Web浏览器当前文档使用的HTML版本。
  2. html标签:包含整个文档。
  3. head标签:包含文档的元数据,如标题、关键字和描述等。
  4. body标签:包含文档的主体内容。
  5. 标签:用于定义文档中的各种元素,如标题、段落、图像和链接等。

示例:

Copy Code
<!DOCTYPE html> <html> <head> <title>My Page</title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> </head> <body> <h1>Welcome to My Page</h1> <p>This is a paragraph.</p> <img src="image.jpg" alt="Image"> <a href="https://www.google.com">Google</a> </body> </html>

该示例展示了一个简单的HTML页面,其中包含一个标题、一个段落、一张图片和一个链接。

实例

将上述两个内容结合起来,可以使用XQuery FLWOR表达式从XML文档中选择符合特定条件的元素,并将其转换为HTML格式的Web页面。例如:

Copy Code
for $book in doc("books.xml")//book let $price := $book/price where $price < 30 order by $price descending return <p> <span>{$book/title}</span> <span>{$book/author}</span> <span>{$price}</span> </p>

该表达式从XML文档中选择所有价格低于30的书籍,并按价格从高到低排序,最后将每本书籍的标题、作者和价格转换为HTML格式的段落。