Last modified on 1 March 2015, at 20:14

XQuery/Inserting and Updating Attributes


You want to insert or update attributes in a document.

(Note: The XQuery Update syntax below is specific to eXist and is not necessarily identical to that in the W3C XQuery Update spec. Full documentation of eXist's XQuery Update syntax can be found at

Example Input DocumentEdit

    <message>Hello World</message>

Example of Attribute InsertEdit

To insert a new attribute with the name of "foo" and a value of "bar" you an use the following example:

xquery version "1.0";
let $doc := doc('/db/test.xml')/root
let $update := update insert attribute foo {'bar'} into $doc

This will add a foo="bar" attribute to the root element

Result DocumentEdit

<root foo="bar">
    <message>Hello World</message>

Example of Attribute UpdateEdit

let $doc := doc('/db/test/update-attribute/root.xml')/root
return update value $doc/@foo with 'new-value'

Result DocumentEdit

<root foo="new-value">