我想将一个字符串转换为一个节点.我有一个定义为获取节点的方法,但我拥有的值是一个字符串(它是硬编码的).如何将该字符串转换为节点?
所以,给定一个XQuery方法:
define function foo($bar as node()*) as node() {
(: unimportant details :)
}
Run Code Online (Sandbox Code Playgroud)
我有一个字符串,我想传递给foo方法.如何将字符串转换为节点,以便该方法将接受该字符串.
使用属于HTML5的新doctype和元素,您如何xdmp:tidy()识别HTML5中的那些?
如果我有一个包含以下内容的html页面:
<!DOCTYPE html>
<html>
<header>blah</header>
<section>blah</section>
Run Code Online (Sandbox Code Playgroud)
然后尝试类似的东西:
xdmp:tidy(xdmp:document-get("home.html"))
我得到的错误如下:
<section> is not recognized! discarding unexpected <section>
<header> is not recognized! discarding unexpected <header>
Run Code Online (Sandbox Code Playgroud)
我可以发送一些选项xdmp:tidy()让它来处理它吗?
我需要查询XMLMarkLogic服务器并将其编组为Java对象.有什么好办法可以解决这个问题?特别:
有人问我为什么要使用Java.我正在使用Java/Java EE,因为我在该语言中表现最强.这是一个单人项目,我不想被困在任何地方.该项目旨在开发Web服务API以及数据处理和转换(CSV到XML)功能.Java/Java EE可以做得很好并且优雅地完成它.
我们已经启动了一个使用marklogic存储文档的新项目.为了让应用程序运行,我们需要创建一个数据库,一个林,新用户并设置一个XDBC服务器.通过Marklogic提供的Web管理工具很容易实现,但是要从持续集成服务器运行它,我们需要自动化它.有没有办法从命令行执行此操作(如sqlserver的sqlcmd.exe或oracle中的sql plus)?
我想搜索文档的文档属性.我只有Marklogic中加载的文档,没有xml文件.我已经关闭了内容处理.现在我想搜索元数据(存在xdmp:document-properties(uri))
我在文档中有以下属性: -
<?xml version="1.0" encoding="UTF-8"?>
<prop:properties xmlns:prop="http://marklogic.com/xdmp/property">
<uploaded>true</uploaded>
<OntologyResourceTypeValue>DOCUMENT</OntologyResourceTypeValue>
<content-type>application/pdf</content-type>
<filter-capabilities>text subfiles HD-HTML</filter-capabilities>
<CreationDate>2002/12/05 09:44:29Z</CreationDate>
<ModDate>2002/12/05 12:02:27+02'00'</ModDate>
<Producer>Acrobat Distiller 5.0 (Windows)</Producer>
<Author>Administrator</Author>
<Creator>PScript5.dll Version 5.2</Creator>
</prop:properties>
Run Code Online (Sandbox Code Playgroud)
现在我想搜索作者而不是其他属性.如果我正在使用search:search("Administrator")那么它正在整个文档中寻找这个词.但是,我想只搜索文档属性中的Author标记.同样,我也希望在其他属性中搜索.
我也试过这个: -
let $options := <options xmlns="http://marklogic.com/appservices/search">
<constraint name="author">
<properties name="prop:Author"/>
</constraint>
</options>
let $results := search:search("author:Administrator", $options, 1, 10)
return
$results
Run Code Online (Sandbox Code Playgroud)
但是,这不起作用.请帮忙.
我正在尝试从Web表单中更改内存中加载的非常大的XML文件中的几个节点的值.
该文件是这样获得的:
let $file := xdmp:get-request-field("xml_to_upload")
Run Code Online (Sandbox Code Playgroud)
所以,你可以看到文件在内存中.
现在,我需要更改数千个节点的值,到目前为止,我还没能以最佳方式完成它.
有任何想法吗?
到目前为止我尝试过的一些事情:
let $auxVar :=
if($fileStructureIsValid) then
(
for $currentNode in xdmp:unquote($file)//ID
let $log := xdmp:log( fn:concat( "newNodeValue", ": ", mem:replace( $currentNode, element ID{ fn:concat( $subject, "-", fn:data( $currentNode ) ) } ) ) )
return fn:concat( $subject, "-", fn:data( $currentNode ) )
)
else
(
)
Run Code Online (Sandbox Code Playgroud)
mem库是一个自定义下载的库.
我处于棘手的状态,我似乎无法在MarkLogic文档中找到有关它的任何信息.我遇到的问题是我使用来自不同来源的三元组,并且他们使用不同的方式来描述字符串对象(有些是多语言的):
<http://subject1> <http://www.w3.org/2004/02/skos/core#prefLabel> "Object"^^xs:string .
<http://subject2> <http://www.w3.org/2004/02/skos/core#prefLabel> "Object"@en .
Run Code Online (Sandbox Code Playgroud)
所以,当我做一个时,
cts:triples((), sem:iri("http://www.w3.org/2004/02/skos/core#prefLabel"), "Object")
我只得到第一个三联.
问题是,如何让它忽略语言并返回两个三元组(如果可能,不使用sparql)?
我有以下挑战.我们有想要使用mlcp加载到MarkLogic数据库的csv文件.我们还希望在加载期间将加载的行转换为OBI源,因此我们为此构建了转换函数.
现在我正在努力改造.如果没有转换,数据将按预期加载为每行doc.
csv示例:
voornaam,achternaam
hugo,koopmans
thijs,van ulden
Run Code Online (Sandbox Code Playgroud)
变换ambulance.xqy:
xquery version "1.0-ml";
module namespace rws = "http://marklogic.com/rws";
import module namespace source = "http://marklogic.com/solutions/obi/source" at "/ext/obi/lib/source-lib.xqy";
(: If the input document is XML, create an OBI source from it, with the value
: specified in the input parameter. If the input document is not
: XML, leave it as-is.
:)
declare function rws:transform(
$content as map:map,
$context as map:map
) as map:map*
{
let $attr-value :=
(map:get($context, "transform_param"), "UNDEFINED")[1]
let $the-doc := …Run Code Online (Sandbox Code Playgroud) 如何cts:search以编程方式更改函数运行的数据库?
现在我在查询控制台.
我们需要为我们提取的每个文档添加一个集合,并且希望使用CPF,因为集合将取决于文档中的数据.
我们的文档URI是:GUID.xml没有正斜杠或前面的目录.
我们试图让CPF触发使用:
文件范围=目录
uri = /
和
文件范围=文件
uri = /
我们的理论是,CPF期望文档URI以正斜杠开头,但因为它们不会触发CPF.
我们已经考虑过使用粗略的解决方案,将基本集合添加到每个文档中,并将其用作CPF的文档范围,但显然这是我们不需要添加的不必要的数据.
我们将不胜感激任何想法或解决方案.
marklogic ×10
xquery ×4
xml ×3
java ×1
marklogic-8 ×1
mlcp ×1
tidy ×1
triples ×1
triplestore ×1