我有以下目标。我想在执行任何类型的Xquery或XPath时查找哪些文档包含我的数据。换句话说,我需要为给定查询提供结果数据的每个文档。我试图在eXist db环境中实现这一点,但我认为应该在Xquery级别上实现这一点
我找到了op:context-document()操作符,它似乎有我想要的功能,但作为一个操作符,它对我来说不可用。fn:文档uri也不起作用,因为它的$arg必须是文档节点,否则它将返回一个空序列
你有什么想法吗?非常感谢您的帮助。使用标准XPath/XQuery函数
例如,
我正在使用XMLSpy。
我正在尝试将一个简单的xquery插入到XML文档中,将一个节点插入到先前存在的节点中
xquery版本“3.0”;
声明命名空间ext=”http://www.altova.com/xslt-extensions";
让$mydoc:=doc(“MyData.xml”)
让$ssn:=999-99-9999
对于$mydoc//帐户中的$n
将插入节点$ssn返回到$n中
收到语法错误XPST0003:“return insert node$ssn into$n”周
这是我第一次遇到Xquery(3.1)错误更新的内容是空的,在Google上搜索没有返回任何有用的内容
如果我运行这个简单的查询来识别嵌套的/tei:p/tei:p:
for $x in $mycollection//tei:p/tei:p
return $x
我得到的XML片段如下所示:
<p xmlns="http://www.tei-c.org/ns/1.0"/>
<p xmlns="http://www.tei-c.org/ns/1.0">Histoires q
我对使用撒克逊人还不熟悉。我可以请一位使用Saxon处理XQuery的专家指出有关Saxon的优点的一些细节吗?它与其他XQuery处理器有什么不同呢?提前感谢Saxon的作者Michael Kay在论文(PDF)中写到了这一点。它很好地描述了开发Saxon时所做的设计选择。Saxon的作者Michael Kay在论文(PDF)中写到了这一点。它很好地描述了开发Saxon时所做的设计选择。区分XQuery处理器的主要原因可能是它们分为三类:
在内存中处理XML的独立XQuery处理器
XQue
我有一个关于根据模式1.1验证XML文件的问题。在某些XQuery实现中
可以在序言中使用它:在“schemaABC.xsd”处导入模式名称空间r=”“;
然后通过验证表达式验证(或不验证)xml文件。
这是唯一的办法吗?我这样问是因为并非所有的XQuery实现都知道XSD1.1特性,而且Saxon EE超出了预算
在启动XQuery之前,是否可以验证xml(当然,所有类型注释都已就位)?您似乎在问四个不同的问题
XQuery实现是否支持XSD1.1和XSD1.0?
有的有,有的没有
在启动XQ
我需要清楚地解释为什么在Marklogic中发生XDMP-EXTIME。在我的例子中,它发生在搜索(读取操作)期间。在异常消息中,正在打印代码中的一行:
XDMP-EXTIME:wsssearch:options($request,$req config)--超过时间限制
这给我的印象是,执行并没有超出这一界限。但这似乎是一行无害的代码,它不从数据库中获取任何数据,只设置某些搜索选项。我如何确定是哪部分代码导致了这种情况?我听说增加任务服务器的最大时间限制可以解决这样的问题,但这不是我的选择。请
有人能告诉我如何在OSB/Xquery中将小时减去日期时间吗
例如,当前日期减去3小时。XQuery中有一个名为“减去dayTimeDurations”的函数
例如:
减去dayTimeDurations(dayTimeDuration$srcval1,dayTimeDuration$srcval2)
结果将按如下方式返回:
op:减去dayTimeDurations(xf:dayTimeDuration(“P2DT12H”),xf:dayTimeDuration(“P1DT10H30M”))返
在使用了下面提到的Xquery之后,我得到了正确的输出
let $element :="Name"
let $value := "Antony"
let $op := cts:search(//root, cts:element-value-query( xs:QName($element),$value))
return $op
但我在变量中使用“root”值时出错。如果有其他选择,请建议我
let $element := "Name"
let $value := "Antony"
let
我想问一下如何在Basex数据库中加速select查询。
例如,我在一个包含许多事件(大约650000个)的数据库中有以下xml
但是它非常慢,一分钟内返回60个项目。
BaseX数据库中有许多数据。
如何加快请求或数据库的速度?BaseX目前没有xs:dateTime的范围索引,但您可以通过将比较移到XPath中,使用文本索引获取具有给定事件类型的所有事件:
for $b in //EventList/Event[Type = 'Measurement']
let $date as xs:da
我试图运行这一行xdmp:unquote(concat(“”,string($段落),“”))但我遇到了以下错误:xdmp:unquote(“学习与记忆”)--第1行的“无效实体引用”。似乎该实体引用&是导致问题的原因。我试图使用replace函数删除它,但它仍然存在。我该怎么办?我假设你有这样的东西-
let $paragraph := <p>LEARNING & MEMORY</p>
return
xdmp:unquote(fn:concat('
如何以动态方式从序列生成标记?我是说我有
序列式
let $names = ("name1", "name2", "name3");
我想创造
<name1>
</nam1>
<name2>
</name2>
<name3>
</name3
使用:
您已经知道如何从您的答案构造元素。因此,只需在名称序列中循环并返回构造的元素。
('a','b') ! element {.} {()}
我试图从多个文档中检索XPath的值。就我而言,大约有800k个文档。我接到了一个电话
扩展树缓存已满
当文档较少时,即对于400k文档,相同的查询将生成预期的输出
以下是用于从集合中检索XPath值的查询:collection1和collection2:
请查看此处的答案是否有助于您:
当查询需要实际检索元素、值或以其他方式遍历其中一个片段的内容时,该片段将被解压缩并缓存在扩展树缓存中
因此,请尝试重写查询以检索较少的文档。如果您有足够的内存,增加扩展树缓存的大小也会对您有所帮助。从查询返回的
我正在尝试设计一个很好的cts查询,它匹配两个节点,而不是一个节点。例如,我有两个来源的记录,都有ID值和dateTime值。我希望在第一个源中找到记录,该记录在第二个源中具有匹配的ID和更新的日期时间值
类似这样的东西(不起作用):
这不起作用,因为它返回ID值相等的记录,并且存在日期时间值更大的记录
如何使cts查询与两个值匹配?我只能通过FLWOR来实现这一点吗?如果我正确理解需求,可以通过连接高效地实现此查询:
创建一个TDE视图,其作用域为集合,上下文为/record,用于投影id和
现在,我有了一个文件的完整路径,如字符串:
"/db/Liebherr/Content_Repository/Techpubs/Topics/HyraulicPowerDistribution/Released/TRN_282C_HYD_MOD_1_Drive_Shaft_Rev000.xml"
但是,现在我只需要取出文件夹路径,因此它将是上面的字符串,没有最后的反斜杠内容,如:
"/db/Liebherr/Content_Repository/Techpubs/Topics/Hyra
Sample1.xml
<data><row><id>949459</id><product_id>4119945117</product_id></row>
<row><id>781351</id><product_id>1009460692</product_id></row>
<row><id>7
我有一个名为TBTASK的表,其结构如下
PRIID CHARACTER(15) NOT NULL,
BID CHARACTER(10) NOT NULL,
REF CHARACTER(15) NOT NULL,
TIME TIMESTAMP NOT NULL DEFAULT CURRENT TIMESTAMP,
XMLREC XML NOT NULL
存储在DB XMLREC列中的XML如下所示
<Root><Code>6</Code><Id>
如果我将xml加载到marklogic数据库中,它会自动将十六进制实体转换为字符串,那么如果有任何解决方案不使用XSLT CharMAP,您是否考虑过将ML appserver的输出格式更改为ASCII
我有note.xml:
<?xml version="1.0"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
出于某些原因,我需要两个,以便处理note.x
我有20000个文档,每个文档中包含50多个元素。我想要其中一个元素的值,所以这是20000个值
“问题”是它们都是相同的值,因为testdata。现在,当我在一个元素上运行cts:element-values()时,它会给我两个值。这不是我想要的,我想要所有的20000都出现在我的屏幕上
我添加了搜索所需的范围元素idex。这是我正在运行的查询
declare namespace xbrli="http://www.xbrl.org/2003/instance";
declare na
使用版本:4.5.0
db/system/config/db/test/collection.xconf代码如下:
<range>
<create qname="item">
<condition attribute="name" value="number"/>
<field name="number" match="@value" type="xs:decimal"/>
如果您有这样一个嵌套的FLWOR语句,其中包含两个“for”语句:
for $x at $xPos in (1, 2, 3)
for $y at $yPos in fn:doc("/foo")//b
return ()
您如何准确计算for循环运行了多少次?假设'fn:doc(“/foo”)//b'返回随机长度的序列,因此下面是一个运行示例:
$xPos $yPos
1 1
1 2
1 3
2 1
2 2
3 1 &l
我试图在旧元素的基础上构建一个新元素,包括复制它的子元素。为了防止每个子级重复作用域中每个名称空间的名称空间定义,我还对复制名称空间声明感兴趣
命名空间声明不是通过$element/@*作为常规属性获取的
如果我将代码限制为仅适用于XQuery 3.0,我可以执行以下操作:
<new-element>
{
for $ns-prefix in in-scope-prefixes($element)
let $ns-uri := namespace-uri-for-p
我有一个从a.xml转换到b.xml的xquery文件。下面是我的x查询示例:
<TestMessage>
<Header>
<MessageType>
{for $x in doc("input.xml")//Test/NewHeader return
if ($x/MessageType/text() = "FIRST") then "FirstMessageType"
else
我正在努力解决一个XQuery问题。我有一个XML产品列表,其中包含来自两个不同产品目录系统的产品(由于合并和收购)。有些产品是重复的(每个系统1个)。复制品的产品名称相同,但价格不同
我想返回显示最便宜产品价格的独特产品列表。例如,考虑这个输入XML
<?xml version="1.0" encoding="UTF-8"?>
<ns1:ProductList xmlns:ns1="http://www.mycorp.com/bus/prod/" xmlns:soap-en
我试图在MarkLogic中使用XQuery搜索一个术语。当我运行下面的代码时,我什么也得不到。有人知道问题出在哪里吗?我不使用名称空间,但我认为这不是问题所在
注意:当我在MarkLogic的查询控制台中运行此查询时,我收到以下消息:
your query returned an empty sequence
代码:
{
对于/article/front/article-meta/title-group/article-title[cts:contains(,xdmp:get-request
您好,我正在尝试使用xquery将一些xml转换为csv,并找到了一篇帮助我做到这一点的文章:
for $b in /root/Result
return
concat(escape-html-uri(string-join(($b/HolidayEndDate,
$b/HolidayType,
$b/FirstName,
标签: Xquery
saxonnumber-formatting
我正在尝试在XQuery中格式化小数。小数是货币,因此格式应该是,#####
例如:
5573652.23应该是5573652.23
及
352769应该是352769(或者352769.00如果更容易/更干净)
现在我使用的是来自的函数,但不能使用小数:
declare function local:format-int($i as xs:int) as xs:string
{
let $input :=
if ($i lt 0) then fn:substring(fn:stri
我是XQuery新手,我只是想检查并确保我已经正确地解决了前面的几个问题,看看是否有任何反馈
查找价格低于100的打印机元素
let $products := doc("products.xml")
for $e in $products/Products/Maker/Printer
where $e/Price < 100
return $e
let$products:=doc(“products.xml”)
在$products/products/Maker/Printer中的$e
如果我不使用函数,我的代码工作正常
declare function local:samlefamily(
$pers as xs:string?) as xs:string?
{
some stuff
};
if (exists(/*/FamilyRec/Child/Link[@Ref = "IN0099"]))
then
for $family in doc("family.xml") /*/FamilyRec
where $family/Child/Link[@Ref = "
我需要读取本地文件系统上的xquery文件中的配置文件(XML或属性文件),也就是说,我不想将该配置文件放在marklogic数据库中。有没有办法做到这一点?您可以将文件作为字符串读取,只要使用xdmp:filesystem file对其进行UTF-8编码,然后可以调用xdmp:unquote
xdmp:unquote(xdmp:filesystem-file("c:/config.xml"))
只要使用xdmp:filesystem file对文件进行UTF-8编码,就可以以字符串形式读取该
我正在研究一个函数来合并一组序列,这将尽可能最好地保持所有序列的顺序。对所有序列执行不同的值($sequences)不会保留顺序
我有以下MarkLogic XQuery代码:
xquery version "1.0-ml";
declare function local:map-sequence($map, $list as xs:string*) {
let $count := fn:count($list) - 1
return for $idx in (1 to $co
我正在尝试创建一个端点,用于接收内容
当我收到一个JSON文档时,我试图将其提交给语义分类服务,获取标记,并将其添加到文档中
现在,我可以接收文件,将其发送到分类,获得标签。打印日志显示,$tags填充了
2017-10-20 15:29:40.333 Info: App-Services: {"value":"Greenville", "score":"1.00", "cskey":"43236", "tag_source":"smartlogic", "key":"43236", "orig
我想生成具有时间戳的非重复随机数。可能的代码是什么
我尝试过使用sem:uuid-string()函数,但它会生成36个很长的字符。我建议您查看一下库。它提供了在MarkLogic中生成唯一ID的3种不同方法,并解释了每种方法的优缺点。也许其中一个适合您的需要,或者您可以复制代码,并根据需要进行调整
请注意,仅时间戳不足以保证唯一性,特别是在一个请求中生成多个ID或并行处理数据时
顺便说一下,uuid字符串的长度使得碰撞的可能性非常小
嗯 不可能生成一个不重复的随机数并使结果适合有限的大小。如果
我在BaseXXML数据库上使用xquery。比如说,我的数据库中存储了以下文档:doc1、doc2、doc3
我使用什么Xquery检查给定文档的存在性。我尝试了以下方法:
将变量$doc_name声明为xs:string external
返回布尔值($doc\u name)
我预计它的工作如下:
如果doc_name=doc1返回true
如果doc_name=nodoc返回false
但是,我看到一个例外:
java.io.IOException:在第3行第7列停止:
[XPST0003
我有一个XQuery函数
declare function local:helloWorld($param1 as xs:string, $param2 as xs:string) as element() {
现在,我想说,是否可以计算传递给我的函数的参数
declare function local:helloWorld($param1 as xs:string, $param2 as xs:string) as element() {
有可能吗
提前感谢没有计算传递给函数的参数数量
我在xqy页面中有一个隐藏字段。现在我想通过xquery代码在同一页中获取它的值。页面没有刷新。我不想使用javascript。是否有任何方法可以在不提交页面的情况下使用xquery获取隐藏字段的值。您需要浏览器中的xquery功能。MarkLogic在服务器端运行,因此需要往返(例如提交)。但您可以看看XQiB:
嗯 这个问题很模糊,可以用几种不同的方式来解释:如果你提出更好的问题,你会得到更好的答案
但我会比吉特乐观一点。如果表单字段是由服务器XQuery模块构建的HTML表单,则该模块在构
有没有办法在xquery文件的执行流中“死”并输出序列变量的格式良好的打印输出
我正在尝试类似的东西:
return { fn:error(xs:QName("ERROR"), $xml) }
但这似乎不太管用
谢谢 根据您的评论(您需要它进行调试),我猜您正在寻找这里描述的fn:trace函数
如果要中止执行流并在应用程序中输出错误,实际上应该使用XQuery异常处理。根据您的评论(调试时需要它),我猜您正在寻找此处描述的fn:trace函数
如果要中止执行流并在应用程序中输出错误,实际上应
有人知道XQuery(甚至MarkLogic)的IRC频道吗?通过搜索谷歌,我似乎找不到一个活跃的
谢谢 我一个也不知道。我不认为IRC在本世纪被积极使用。。。
不过,各种邮件列表都非常活跃和及时
考虑到人们的时间也很有用。。。使用邮件列表可以让人们在有时间的时候回答问题,而不是感到实时回答“紧急”问题的压力
-David噢,IRC在PHP、Ruby、各种框架等方面非常活跃。我认为它们不仅仅适用于紧急情况。通常情况下,你会得到一个实时的对话,探讨“切题”的主题,你不经常看到邮件列表。另外,我
以下两个查询在eXist db上运行良好,但在MarkLogic server上产生以下错误。谢谢你的帮助
查询:
for $cust in //Customer[@id=1011]
for $ord in //Order[@Acct = $cust//Accounts//Account/@id/fn:string(.)]
return $ord/OrdQty/@Cash
return max($orderprice)
for $cust in //Customer
return &
我想根据方面计数对结果进行排序。我怎样才能在搜索中做到这一点:搜索
现在,我正在使用这个查询-
let $options :=
<options xmlns="http://marklogic.com/appservices/search">
<return-metrics>false</return-metrics>
<return-facets>true</return-facets>
<return-resul
然而,如果我不执行concat返回,只需使用名称或填充即可,最奇怪的是我还有另一个程序:
Type Error: Type of value '
()
' does not match sequence type: xs:anyAtomicType?
At characters 11681-11698
At File "q2_3.xq", line 4, characters 13-67
At File "q2_3.xq", line 4, characters 13-67
At File
更新代码
我的库模块是这样的
module namespace test="http://try.marklogic.com/test";
declare function test:median(
$map as map:map*
) as node()*
{
cts:search(fn:doc(),
cts:and-query((
cts:element-word-query(
xs:QName("College"),map:get($map,"College"
我有以下疑问:
for $b in //Desarrollador
let $desc := $b/Programa/Descripcion/text()
let $ver := $b/Programa/Version/text()
where $b/@CodigoDes = "D02"
return <salida>{$desc, $ver}</salida>
我该怎么做?正如Charles Duffy在评论中提到的,似乎在一些Desarrollador节点中有多个P
在我的系统中,MarkLogic管理和配置面板工作,但控制台面板不工作。它一直工作到昨天。
浏览器中的消息如下所示:
This site can't be reached
localhost refused to connect.
Did you mean http://localhost8000.com/?
Search Google for localhost 8000
ERR_CONNECTION_REFUSED
访问:http://localhost:8000
URL中的端口号缺少:。
我有一个基于XML路径范围索引的约束,即为不同类型的字母大小写返回方面值:
<facet name="myFacet" type="xs:string">
<facet-value name="test TEST" count="1"/>
<facet-value name="Test Test" count="3"/>
</facet>
我希望我的facet值是不区分大小写的,在这里,对于“Test Test”,我将有4个结
我希望XQuery代码按订单号分组,如果整个组的任何状态为打开状态,则跳过XML记录(完整组)
代码:
for $x in doc("C:/Users/XML/SFO1.xml")//records
let $a :=$x/Order_Number__c
let $b :=$x/Interface_Status__c
let $Order_Number__c := (substring($a,6,8))
order by $Order_Number__c,$b ascending
ret
我正在尝试构造XQuery,它将返回找到的值为x的number属性的计数
这是SQLquery的一部分,这些计数将填充返回的一列(这部分我可以计算出来,这是实际的XQuery来获取我还没有计算出来的计数。)
例如,如果我有…,我如何计算给定XML块中等于1的所有@elementattributes?可以使用星号通配符作为元素名称:
计数(//*[@elementattribute='1'])
希望这能有所帮助……好吧,我想我自己也找到了答案:我使用了xml_content.value('coun
我有这个字符串($str):67-89-90T,我想保留67-89
当然,substring before($str,'-')返回67,但如何选择第二个破折号?好,我终于找到了functx:substring before last。不选择特定的破折号,但在这种情况下对我有效
XPath 2解决方案应该是:
replace("67-89-90T", "(.*)-[^-]*$", "$1")
(如果没有-,也可以工作,因为它不匹配并且不替换任何内容)使用标记化的XPath 2.0解决方案可能比使
我在MarkLogic server中有一个数据库。数据库有许多集合。其中一些集合具有名称空间,而另一些集合具有不同的名称空间。要知道不同名称空间的查询是什么?我的目标是构建一个搜索应用程序,允许用户使用搜索栏并从最相关的集合返回文档。由于所有集合都有不同的xml结构,我还希望根据集合和搜索自定义文档的显示。获取数据库中唯一集合列表的一种方法是使用。您可以在搜索选项中指定集合约束,该约束将返回唯一的集合。下面的示例指定了一个不带前缀的集合约束,然后返回一个刻面值列表,其中包含为每个集合计算的文档
我们正在重构一个非常大的系统,查看我们编写的许多xQuery,并想知道使用并包含声明许多全局变量的xQuery是否会有所帮助
但问题是建筑师们。。。这些是参考加载还是仅在使用时加载
意思是说我有一些xQuery_global.xq如下所示:
module namespace g="global/variables";
declare variable $g:col.build := '/db/foo/data/Build';
declare variable $g:doc.langmap :=
上一页 1 2 ...
5 6 7 8 9 10 11 ...
下一页 最后一页 共 30 页