以下代码给出了错误:
[1.0-ml] XDMP-UNDVAR: (err:XPST0008) Undefined variable $ename
Run Code Online (Sandbox Code Playgroud)
但是,如果我更改xsl:element为<xsl:element name="yyyXXX">它,则表明它在值中看到$ ename,即
<yyyXXX>zzz</yyyXXX>
下面的样式表在Saxonica 9.x中运行得很好
谢谢.
xquery version "1.0-ml";
xdmp:xslt-eval(
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xdmp="http://marklogic.com/xdmp"
extension-element-prefixes="xdmp"
version="2.0">
<xsl:template match="/">
<xsl:variable name="ename" select="'zzz'"/>
<xsl:element name="yyy{$ename}">
<xsl:value-of select="$ename"/>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
,document{ <doc/> })
Run Code Online (Sandbox Code Playgroud) 我希望节点替换为$ person变量.我需要改变什么?
以下代码应将序列中人员的名称更改为X.
declare function local:ChangeName($person)
{
xdmp:node-replace($person//Name/text, text { "X" } )
<p>{$person}</p>
};
let $b := <Person>
<Name>B</Name>
<IsAnnoying>No</IsAnnoying>
</Person>
let $j := <Person>
<Name>J</Name>
<IsAnnoying>No</IsAnnoying>
</Person>
let $people := ($b, $j)
return $people ! local:ChangeName(.)
Run Code Online (Sandbox Code Playgroud) 我试图找到xml中每个元素的xpath并将其作为元素值.我的源文件看起来像:
<root>
<parent1>
<child1></child1>
<child2></child2>
</parent1>
<parent2>
<child1></child1>
</parent2>
</root>
Run Code Online (Sandbox Code Playgroud)
我想要一个输出像:
<root>
<parent1>
<child1> /root/parent1/child1 </child1>
<child2> /root/parent1/child2 </child2>
</parent1>
<parent2>
<child1> /root/parent2/child1 </child1>
</parent2>
</root>
Run Code Online (Sandbox Code Playgroud)
我目前得到的输出为:
<root>
<parent1>
<child1> /root/parent1/child1 </child1>
<child2> /root/parent1/child2 </child2>
</parent1>"
<parent2>
<child1> /root/parent1/parent2/child1 </child1>
</parent2>
</root>
Run Code Online (Sandbox Code Playgroud)
我无法正确遍历以找到xpath.任何输入都是有价值的.
我的内容在我的旧数据库中既不是有效的HTML也不是XML.考虑到这个事实,很难清理遗留问题,我想在MarkLogic中使用xdmp:tidy来整理它.我目前正在使用ML-8.
<sub>
<p>
<???†?>
</p>
</sub>
Run Code Online (Sandbox Code Playgroud)
我正在通过某种方式将此内容传递给整洁的功能:
declare variable $xml as node() :=
<content>
<![CDATA[<p><???†?></p>]]>
</content>;
xdmp:tidy(xdmp:quote($xml//text()),
<options xmlns="xdmp:tidy">
<assume-xml-procins>yes</assume-xml-procins>
<quiet>yes</quiet>
<tidy-mark>no</tidy-mark>
<enclose-text>yes</enclose-text>
<indent>yes</indent>
</options>)
Run Code Online (Sandbox Code Playgroud)
结果它返回:
<p>
<? ?†?>
</p>
Run Code Online (Sandbox Code Playgroud)
现在这个结果不是有效的xml格式(我通过XML验证器检查过),因为当我尝试将这个XML插入MarkLogic时,它会抛出一个错误,说'MALFORMED BODY | 无效的处理指令名称'.
我对PI进行了一些调查,但没有太多运气.我本可以尝试在没有PI的情况下保存内容,但这也不是一个有效的PI.
是否存在类似于xdmp:directory的目录,用于遍历具有不以"/"开头的uris的文档,即" http://something.other.com/documents/ "?或者是否有某种方法可以获取文档uri与正则表达式匹配的所有文档?
例如,我想拉文件:
我试图在部分性能中计算MarkLogic中XML的doc大小.有人可以帮我解决任何内置函数或任何查询,我可以计算我的文档的准确大小?我有一个像这样的公式:
{string-length(string(data($doc))) idiv 2}
Run Code Online (Sandbox Code Playgroud) 我正在使用MarkLogic查询控制台.我的XQuery文件无法正常工作,我遇到此错误MarkLogic Xquery请求错误:
XDMP-UNEXPECTED :(错误:XPST0003)意外的令牌语法错误,意外的Dollar_"
这是我正在执行的代码:
declare function fill:getA() as node()* {
for $projectId in /cf:Project/@Id/string()
$s := fill:getS($projectId)
$t := fill:getT($projectId)
Run Code Online (Sandbox Code Playgroud) 我有一个包含XML文档的数据库,大致如此:
<document>
<question_item>
<question>What is your name?</question>
</question_item>
<question_item>
<question>What is your address?</question>
</question_item>
...
</document>
Run Code Online (Sandbox Code Playgroud)
我希望能够获取一个搜索词,然后返回一个明确的问题列表,其中找到该术语,例如使用上面的数据搜索"name",将返回一个结果,"你的名字是什么?".
我已经成功实现了这一点fn:distinct-values,但显然效率不高.
我想用CTS实现这个.我尝试过以下方法:
for $question in cts:element-values(
xs:QName('question'),(),(),
cts:element-word-query(xs:QName("question"), "name"))
return $question
Run Code Online (Sandbox Code Playgroud)
然而,这会导致问题在问题文本中没有"名称".例如,在上面的例子中,返回了两个问题.我认为这是因为我正在使用的查询未经过滤传递,因此如果该片段存在匹配,它将从片段返回任何问题.
这个假设是否正确?
我能做些什么才能实现我想做的事 - 有效率?
谢谢!
我试着用fn:string-pad()xquery函数抛出错误的未定义函数,使用Marklogic版本9
我有一个包含不同目录的URI列表.它是从MarkLogic中的URI获取所有不同目录的方法吗?
xdmp:directory 用于不同的目的.
Example-
let $uri := "/test/abc/somepath/abc.xml"
Output should be- "/test/abc/somepath/"
Run Code Online (Sandbox Code Playgroud)
有什么建议 ??
marklogic ×10
xquery ×7
marklogic-8 ×3
htmltidy ×1
marklogic-9 ×1
nosql ×1
sequence ×1
tidy ×1
xml ×1
xpath ×1
xquery-3.0 ×1
xslt ×1