如何在MarkLogic中更改元素的名称

时间:2019-07-18 06:57:39

标签: xml xquery marklogic

我想做这个改变

发件人:

〈aaa〉     bbbbbb 〈/ aaa〉

收件人:

〈bbb〉     bbbbbb 〈/ bbb〉

通过使用MarkLogic XQuery。

该怎么做?

5 个答案:

答案 0 :(得分:2)

最简单的方法是经常使用xdmp:node-replace。但是,这既假设您要修改的数据已经在数据库的文档中,又没有对该文档执行任何冲突的更新。

当不可能使用xdmp:node-replace时,下一个最佳选择是修改内存中的文档,然后将整个文档插入数据库中。

修改内存中文档的最简单方法是使用XQuery Memory Operations library中的mem:replace。

修改内存中文档的最有效方法是编写针对该文档结构进行了优化的recursive descent tree

答案 1 :(得分:1)

可以使用xdmp:node-replace()完成此操作 请参阅-xdmp:node-replace

HTH!

答案 2 :(得分:0)

如果节点不在文档中,则总是存在幼稚的方法:

〈aaa〉 bbbbbb 〈/aaa〉 ! <bbb>{.}</bbb>

答案 3 :(得分:0)

XSLT也内置在服务器中。

答案 4 :(得分:0)

xquery version "1.0-ml";
xdmp:document-insert("/test1.xml",
<root>
<child1>
<aaa>bbbbbb</aaa>
</child1>
</root>
);
doc("/test1.xml");
xdmp:node-replace(doc("/test1.xml")/root/child1/aaa,<bbb>bbbbbb</bbb>);
doc("/test1.xml");