如何使用Xquery将属性添加到现有节点

时间:2015-05-20 06:57:12

标签: xml xquery

我有一个xml如下。

<test>
<a att1="1">
</test>

如何向现有节点添加新属性?预期产出如下。

<test>
<a att1="1" att2="2">
</test>

3 个答案:

答案 0 :(得分:1)

尝试此功能。

  functx:add-attributes(
  $in-xml/a,
  (xdmp:node-insert-after('att1','att2')) or (xdmp:node-insert-before('att1','att2')),(1,2)).

答案 1 :(得分:0)

解决了MarkLogic中以下Xquery的问题。

(: create a document :)
xdmp:document-insert("/example.xml", <a/>);

(: insert an attribute as child of a :)    
xdmp:node-insert-child(doc("/example.xml")/a,
attribute b { "bbb" });

(: look at the new document :)
fn:doc("/example.xml")

**Output**

<?xml version="1.0" encoding="UTF-8"?>
<a b="bbb"/>

来源:xdmp:node-insert-child

答案 2 :(得分:0)

使用XQuery Update和BaseX,以下将是解决方案 -

for $x in doc('Document2')//a
return 
insert node attribute att2{'2'} into $x

我希望你已经有了答案,仍然......