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

查询 XML 数据库外的 XML 文档

 2010-10-22 17:19:23 来源:WEB开发网   
核心提示: 但是,这里有一个问题:副本结果又回来了,查询 XML 数据库外的 XML 文档(9),这毫不奇怪,因为这个查询不再包含 distinct-values() 函数,要解决这个副本问题,这个查询将添加一些内容,可以使用该函数修复这个副本问题,那么

但是,这里有一个问题:副本结果又回来了。这毫不奇怪,因为这个查询不再包含 distinct-values() 函数。可以使用该函数修复这个副本问题。那么,为何要移除它呢?

distinct-values() 函数返回文本值,而不是 XML 元素。不能针对一个文本值查询上级节点。要解决这个副本问题,这个查询将添加一些内容,如 清单 8 所示。

清单 8. 再次从版本移除副本

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 $artifactId := 'log4j' 
return <results> 
{ 
   for $doc in $docs[//m:artifactId = $artifactId] 
   let $name := $doc/m:project/m:name/text() 
   return 
     <result> 
       <project-name>{$name}</project-name> 
       { 
         let $versions := distinct-values($doc//m:dependency[m:artifactId 
         eq $artifactId]/m:version)   
         for $version in $versions 
         return <version library="{$artifactId}">{$version}</version> 
       } 
     </result> 
} 
</results> 

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

Tags:查询 XML 数据库

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