更新节点';使用Marklogic和XQuery创建文本内容

更新节点';使用Marklogic和XQuery创建文本内容,xquery,marklogic,Xquery,Marklogic,假设我有两个XML,xmlA&xmlB,我想用xmlB/bcd更新xmlA/abc的“文本内容” xmlA: 但我只想更改节点的内容。所需输出为: xmlA: 堪萨斯州 有人能告诉我怎么做吗(没有XPath3.0)?谢谢(Ranjan)。您正在运行哪个版本的MarkLogic?我在版本6.0-1.1中测试了以下内容,这似乎和预期的一样。当我在节点替换后检索存储的文档时,我得到了“kansas”两次,但“a.xml”的内部元素未被触及: xdmp:document-insert( 'a

假设我有两个XML,
xmlA
&
xmlB
,我想用
xmlB/bcd
更新
xmlA/abc
的“文本内容”

xmlA:

但我只想更改节点的内容。所需输出为: xmlA:


堪萨斯州

有人能告诉我怎么做吗(没有XPath3.0)?谢谢(Ranjan)。

您正在运行哪个版本的MarkLogic?我在版本6.0-1.1中测试了以下内容,这似乎和预期的一样。当我在节点替换后检索存储的文档时,我得到了“kansas”两次,但“a.xml”的内部元素未被触及:

xdmp:document-insert(
    'a.xml',
    <root>
        <abc>texas</abc>
    </root>
),
xdmp:document-insert(
    'b.xml',
    <root>
        <bcd>kansas</bcd>
    </root>
);

doc('a.xml'),
doc('b.xml');

xdmp:node-replace(
    doc('a.xml')/root/abc/text(),
    doc('b.xml')/root/bcd/text()
);

doc('a.xml'),
doc('b.xml')
xdmp:文档插入(
“a.xml”,
德克萨斯州
),
xdmp:文档插入(
“b.xml”,
堪萨斯州
);
doc('a.xml'),
doc('b.xml');
xdmp:节点替换(
doc('a.xml')/root/abc/text(),
doc('b.xml')/root/bcd/text()
);
doc('a.xml'),
文档('b.xml')
如果您运行的是旧版本的MarkLogic,那么它很可能是一个自

试试这个:

xdmp:node-replace(
    xmlA/abc,
    element { "abc" } { xmlB/bcd/text() }
)
<root>
<bcd>kansas</bcd>
</root>
<root>
<abc>kansas</abc>
</root>
xdmp:document-insert(
    'a.xml',
    <root>
        <abc>texas</abc>
    </root>
),
xdmp:document-insert(
    'b.xml',
    <root>
        <bcd>kansas</bcd>
    </root>
);

doc('a.xml'),
doc('b.xml');

xdmp:node-replace(
    doc('a.xml')/root/abc/text(),
    doc('b.xml')/root/bcd/text()
);

doc('a.xml'),
doc('b.xml')
xdmp:node-replace(
    xmlA/abc,
    element { "abc" } { xmlB/bcd/text() }
)