📅  最后修改于: 2020-11-09 05:41:49             🧑  作者: Mango
以下是一个示例XML文档,其中包含各种书籍的书店记录。
Learn Java in 24 Hours
Robert
2005
30.00
Learn .Net in 24 hours
Peter
2011
70.50
Learn XQuery in 24 hours
Robert
Peter
2013
50.00
Learn XPath in 24 hours
Jay Ban
2010
16.50
以下是一个示例Xquery文档,其中包含要在上述XML文档上执行的查询表达式。目的是获取价格大于30的那些XML节点的标题元素。
for $x in doc("books.xml")/books/book
where $x/price>30
return $x/title
Learn .Net in 24 hours
Learn XQuery in 24 hours
要验证结果,请使用上述XQuery表达式替换books.xqy的内容(在环境设置一章中提供),然后执行XQueryTester Java程序。
让我们了解上述XQuery表达式的每一部分。
doc("books.xml")
doc()是用于查找XML源的XQuery函数之一。在这里,我们传递了“ books.xml”。考虑到相对路径,books.xml应该位于存在books.xqy的相同路径中。
doc("books.xml")/books/book
XQuery大量使用XPath表达式来定位XML的必需部分,在XML上进行搜索。在这里,我们选择了books节点下所有可用的book节点。
for $x in doc("books.xml")/books/book
XQuery将xml数据视为对象。在上面的示例中,$ x代表选定的节点,而for循环遍历节点的集合。
where $x/price>30
因为$ x代表所选节点,所以使用“ /”来获取所需元素的值; “ where”子句用于为搜索结果添加条件。
return $x/title
因为$ x代表选定的节点,所以使用“ /”来获取所需元素,价格,标题的值; “ return”子句用于从搜索结果中返回元素。