标签: marklogic

如何在XQuery中将字符串转换为节点?

我想将一个字符串转换为一个节点.我有一个定义为获取节点的方法,但我拥有的值是一个字符串(它是硬编码的).如何将该字符串转换为节点?

所以,给定一个XQuery方法:

define function foo($bar as node()*) as node() {
  (: unimportant details :)
}
Run Code Online (Sandbox Code Playgroud)

我有一个字符串,我想传递给foo方法.如何将字符串转换为节点,以便该方法将接受该字符串.

xml xquery marklogic

5
推荐指数
3
解决办法
2万
查看次数

如何让xdmp:tidy()整理HTML5?

使用属于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()让它来处理它吗?

tidy marklogic

5
推荐指数
1
解决办法
1444
查看次数

MarkLogic到Java和后台解决方案

我需要查询XMLMarkLogic服务器并将其编组为Java对象.有什么好办法可以解决这个问题?特别:

  1. 使用MarkLogic对XML技术堆栈有什么影响吗?(也就是MarkLogic有什么东西导致搜索,阅读和编​​写XML片段的不同方法?)
  2. 我应该使用其中一个XML API自己处理XML还是更简单的方法?
  3. 是否值得使用JAXB?

有人问我为什么要使用Java.我正在使用Java/Java EE,因为我在该语言中表现最强.这是一个单人项目,我不想被困在任何地方.该项目旨在开发Web服务API以及数据处理和转换(CSV到XML)功能.Java/Java EE可以做得很好并且优雅地完成它.

java xml marklogic

5
推荐指数
1
解决办法
659
查看次数

如何从脚本在marklogic中创建数据库

我们已经启动了一个使用marklogic存储文档的新项目.为了让应用程序运行,我们需要创建一个数据库,一个林,新用户并设置一个XDBC服务器.通过Marklogic提供的Web管理工具很容易实现,但是要从持续集成服务器运行它,我们需要自动化它.有没有办法从命令行执行此操作(如sqlserver的sqlcmd.exe或oracle中的sql plus)?

marklogic

5
推荐指数
1
解决办法
1379
查看次数

如何在文档属性中搜索?

我想搜索文档的文档属性.我只有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)

但是,这不起作用.请帮忙.

marklogic

5
推荐指数
1
解决办法
901
查看次数

使用xQuery更改内存中的XML值

我正在尝试从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库是一个自定义下载的库.

xml xquery marklogic

5
推荐指数
1
解决办法
939
查看次数

MarkLogic三重对象语言

我处于棘手的状态,我似乎无法在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)?

xquery marklogic triplestore triples

5
推荐指数
1
解决办法
153
查看次数

mlcp将csv文件转换为OBI源

我有以下挑战.我们有想要使用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)

marklogic marklogic-8 mlcp

5
推荐指数
1
解决办法
214
查看次数

MarkLogic 8 - XQuery - cts:search - 以编程方式更改数据库

如何cts:search以编程方式更改函数运行的数据库?

现在我在查询控制台.

xquery marklogic

5
推荐指数
1
解决办法
148
查看次数

MarkLogic - 在每个摄取的文档中运行CPF,其中URI是"name.xml",没有目录或斜杠

我们需要为我们提取的每个文档添加一个集合,并且希望使用CPF,因为集合将取决于文档中的数据.

我们的文档URI是:GUID.xml没有正斜杠或前面的目录.

我们试图让CPF触发使用:

文件范围=目录

uri = /

文件范围=文件

uri = /

我们的理论是,CPF期望文档URI以正斜杠开头,但因为它们不会触发CPF.

我们已经考虑过使用粗略的解决方案,将基本集合添加到每个文档中,并将其用作CPF的文档范围,但显然这是我们不需要添加的不必要的数据.

我们将不胜感激任何想法或解决方案.

marklogic

5
推荐指数
1
解决办法
76
查看次数

标签 统计

marklogic ×10

xquery ×4

xml ×3

java ×1

marklogic-8 ×1

mlcp ×1

tidy ×1

triples ×1

triplestore ×1