我在exist-db中使用XQuery,我想使用计数器。例如,我有以下代码:
xquery version "3.0";
for $P in 1 to 351
let $S := data(doc(concat('/db/INDEX/' , $P , '.html'))//h1)
for $result in $S
return <a class="libraryIndexlink" href="http://library.net/newindex.aspx?pid=102834&am
可以将xquery文件(.xq)中的链接设置为变量吗?
例如,我有下面的链接,我需要把它转换成一个变量,这样我就可以将它与for-contains代码一起使用。
{ for $x in doc("myfile.xml")/portion/food
return <li><a href="#link"></a>{data($x)}</li>}</ul>
{ for $y in doc("myfile.xml")/portion[contains(., <THIS IS W
假设我有下面的XQuery代码:
for $y in doc("file.xml")/A/B
for $x in $y/C where $x/constraint1 != "-" and $x/constraint2 > 2.00
do stuff
我可以使用一个计数器来计算我的代码在第二个for循环中会进入多少吗?我试过这个:
for $y in doc("file.xml")/A/B
let $i := 0
for $x in $y/C where $
我试图将迭代次数保存在vars中,但正如您所知道的,xQuery var是不可变的。
有一种特殊的语法,比如
for $film at $i in doc('films.xml')/films/film
return <film>{$i}.{data($film/@title)}</film>
我的问题是,当一个循环在另一个循环中时,如何保持绝对迭代的值。
for $film at $i in doc('films.xml')/films/film
for $goofs at $j in $film/goofs/goof
return *
看一下下面的示例XML --
<div id="main">
<div id="1">
Some random text
</div>
<div id="2">
Some random text
</div>
<div id="3">
Some random text
</div>
<p> Some more random text&
使用XQuery:
列出多个平台支持的每个游戏的id、名称、发行商和平台。平台应该包含在一个XML标记中,用逗号分隔。
我在思考如何计算模式时遇到了问题。我需要计算的平台如上图所示。Playstation3,XBox是一个游戏的模式。在盒子外面,在盒子下面,数据的格式是given.Please help me in it。
我需要使用计数器来记住我处理了多少个节点。所以我定义了一个全局变量$classCounter。由于一些未知的原因,我从zorba得到一个错误:
test.xqy>:15,9: error [zerr:XSST0004]: "local:owlClassNameBuilerHelper": function declared nonsequential but has sequential body
我真的不明白这个错误是什么意思。如何在XQuery中实现全局计数器?
整个xqy文件是:
declare namespace rdf="http://www.w3.or
假设我有一个元素<x>x</x>和一些空元素(<a/>, <b/>, <c/>),我希望一次将第一个元素封装在第二个元素中,从而生成<c><b><a><x>x</x></a></b></c>。当我不知道空元素的数量时,我该如何做呢?
我能做到
xquery version "3.0";
declare function local:wrap-up($inner-element as element(), $outer-el
我正在尝试从XQuery调用一个JAVA方法。但它正在失败
我已经宣布全班同学:
declare namespace b64 = "java:java.util.Base64";
我称之为:
(: Encode a string into Base64 :)
declare function javautil:encodebase64($in as xs:string) as xs:string {
b64:getEncoder().encodeToString($in)
};
(: Decode a string from Base64 :)
declare fun
我在从XML检索数据时遇到了一些问题。
with xmlnamespaces ('x-elements' as x)
select
tb.[Profile].value('(x:ppr/x:static/refId)[1]', 'varchar(22)') testCol
from table1 tb
上面的代码运行得很好。但是,当我在函数中传递XML路径时,它会正确编译,但在调用时不会返回数据,而只是返回xml路径(传递给它)。
CREATE FUNCTION testFunc
(
@p varchar(22)
)
RETURNS n
使用中的代码
<html>
<body>
<h1>Bookstore</h1>
<ul>
{
for $x in doc("books.xml")/bookstore/book
order by $x/title
return <li>{data($x/title)}. Category: {data($x/@category)}</li>
}
我正在使用氧气XML编辑器学习Xquery,并且打开了它们的一个示例文件:
xquery version "3.1";
(:The Saxon EE processor must be set in the XQuery transformation scenario for this example. :)
declare base-uri 'file:/Applications/Oxygen%20XML%20Editor/samples/xquery/Update/';
(: How to insert a node in an XML document
我有一个Server查询来将一个XML节点插入到某些XML中;当我使用大写的INSERT时,它会产生语法错误,但小写的insert工作。
UPDATE @xTABLE
SET x.modify('
INSERT <newthing>I am here</newthing>
as last
into (/rootthing/InsertInMe)[1]
');
为什么在出现语法错误的情况下失败,给出了下面的例子:
Msg 2209,第16级,状态1,第25行XQuery @xTABLE.x.modify():“i”附近的语法错误
在SSMS中运行
我正在处理FLWOR表达式,并且希望在代码中使用XQuery by。但每次我使用group by "XPST0003:要使用API3.0语法,您必须在XQuery和命令行或XQuery中请求XQuery版本3.0“时,它都会给我这个错误。
请帮帮我。我目前使用的是SAXON version 1.0或XQuery -EE XQuery 9.5.1.2。我使用氧气来达到这个目的。
我正在为BaseX编写Xquery函数,它获取一个参数作为元素节点的名称。然后在Xpath中使用这个名称,但通常我不能将字符串转换为元素。 下面是该方法的外观 declare function prefix:getElementWithValue($root as document-node()?, $elem as xs:string?, $minVal as xs:float?, $maxVal as xs:float?)
as element()*
{
let $e := element {$elem} {""}
for $x in $root//SUBEL
我一直在尝试将一个元素(及其子元素)替换为另一个具有相同元素的XML文件中的内容。
示例:
FileA:
<A>
<B id="1">
// more sub elements
</B>
<B id="2">
// more sub elements
</B>
</A>
FileB
<A>
<B id="1">
// other sub elements t