如何在XML中插入节点。
let $a := <a><b>bbb</b></a>)
return
xdmp:node-insert-after(doc("/example.xml")/a/b, <c>ccc</c>);
预期产出:
<a><c>ccc</c><b>bbb</b></a>
请帮助获得输出。
答案 0 :(得分:1)
你应该使用 $('#event_add').click(function(e){
e.preventDefault(); //suppress default behavior
$.ajax({
type: 'GET',
url: '@Url.Action("Agenda", "GetTareas")', // don't hard code your urls
data: { region: $('#lstRegion option:selected').html(), solicitud:
$('#lstSolicitud option:selected').html() }, // pass the value to the id parameter
dataType: 'json', // your returning a view, not json
success: function (data) {
console.log(data);
}});
});
我相信以下方式:
xdmp:node-insert-before
答案 1 :(得分:1)
节点是不可变的,因此只能通过创建新副本来完成内存中的突变。
副本可以使用原始的未经修改的包含节点:
declare function local:insert-after(
$prior as node(),
$inserted as node()+
) as element()
{
let $container := $prior/parent::element()
return element {fn:node-name($container)} {
$container/namespace::*,
$container/attribute(),
$prior/preceding-sibling::node(),
$prior,
$inserted,
$prior/following-sibling::node()
}
};
let $a := <a><b>bbb</b></a>
return local:insert-after($a//b, <c>ccc</c>)
在内存中创建副本然后插入副本比在数据库中插入和修改文档更快。
根据插入的文档数量,差异可能很大。
有社区库可以复制更改,但有时编写快速函数很容易(必要时递归)。
答案 2 :(得分:0)
您可以使用以下代码将元素插入XML:
xdmp:node-insert-child(fn:doc('directory URI'),element {fn:QName('http://yournamesapce','elementName') }{$elementValue})
在这里,我们使用fn:QName
删除了添加节点中添加的xmlns=""
。