WEB开发网
开发学院WEB开发Xml 查询 XML 数据库外的 XML 文档 阅读

查询 XML 数据库外的 XML 文档

 2010-10-22 17:19:23 来源:WEB开发网   
核心提示: 这个查询的结果是:<results><version>1.2.13</version></results>下一步是查询一组文档而不是单个文档,为此,查询 XML 数据库外的 XML 文档(7),需要进行一些微小的更改,如 清单 6 所示, 另一个问

这个查询的结果是:

<results> 
  <version>1.2.13</version> 
</results> 

下一步是查询一组文档而不是单个文档。为此,需要进行一些微小的更改,如 清单 6 所示。

清单 6. 一次查询多个 Maven POMs

declare namespace m = "http://maven.apache.org/POM/4.0.0"; 
let $docs := (doc("http://q4e.googlecode.com/svn/trunk/pom.xml"), 
        doc("http://gmaps4jsf.googlecode.com/svn/trunk/pom.xml"), 
        doc("http://java-twitter.googlecode.com/svn/trunk/pom.xml"), 
        doc("http://xmlzen.googlecode.com/svn/trunk/pom.xml"), 
        doc("http://krank.googlecode.com/svn/trunk/pom.xml")) 
let $versions := distinct-values($docs//m:dependency[m:artifactId eq 'log4j']/m:version) 
return <results> 
{ 
  for $version in $versions 
  return <version>{$version}</version> 
} 
</results> 

这个查询的结果是:

<results> 
  <version>1.2.14</version> 
  <version>1.2.13</version> 
</results> 

您可能已经预料到一个额外的 for 循环了。这个示例加载一些文档并将它们放置到一个序列中以便查询。根据 XQuery 实现,这个构造可能在内存使用方面效率低下。性能和资源使用 将在本文末尾处讨论。

另一个问题是您是否想将这些文档引用硬编码到您的 XQuery 代码中。当然,您也可以将这些 URLs 放置到一个 XML 文件中并将其作为输入传递到查询:这只是一个个人喜好问题。

上一页  2 3 4 5 6 7 8 9 10  下一页

Tags:查询 XML 数据库

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接