xml – XQuery distinct-nodes用法
所以我想在for子句中插入函数distint-nodes(请参阅下面的内容).我正在使用BaseX来达到这个目的.
这是我的代码: <autores>{ for $a in doc("libros.xml")//libro return <autor> <nombre>{ for $b in $a/autor return concat($b/nombre,' ',$b/apellido) } </nombre> { for $c in doc("libros.xml")//libro where $c/autor = $a/autor return $c/titulo } </autor> } </autores> 我想在第一个中使用这个函数,所以它只返回一个< autor />的唯一实例.元件: for $b in distinct-nodes($a/autor) return concat($b/nombre,$b/apellido) 但我收到以下错误(B??aseX查询信息):
为什么这个功能存在时是未知的?有什么我想念的吗? 编辑:我的目的是获得元素$a / autor的唯一实例,其中$a / autor / nombre和$a / autor / apellidos文本值相同 <autores> <autor> <nombre>W. Stevens</nombre> <titulo>TCP/IP Ilustrado</titulo> <titulo>Programación Avanzada en el entorno Unix</titulo> </autor> <autor> <nombre>W. Stevens</nombre> <titulo>TCP/IP Ilustrado</titulo> <titulo>Programación Avanzada en el entorno Unix</titulo> </autor> <autor> <nombre>Serge Abiteboul Peter Buneman Dan Suciu</nombre> <titulo>Datos en la Web</titulo> </autor> <autor> <nombre/> </autor> </autores> 解决方法
没有标准的XQuery函数fn:distinct-nodes(…),XQuery只知道fn:distinct-values(…).
第三方XQuery函数库functx知道 如果所有< autor /> elements contains是作者的名字,考虑应用fn:distinct-values(…)而重新创建< autor />之后的元素. 出于性能原因,如果编译时间增加太多(库很大),则只提取所需的函数可能是合理的.另外请注意,某些功能具有更快的XQuery 3.0对应功能,利用了新的语言功能. fn是默认的XQuery函数名称空间,用于函数库定义的名称空间. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |