XQuery/Inserting and Updating Attributes

From Wikibooks, open books for an open world
Jump to: navigation, search

Motivation[edit]

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 http://exist-db.org/exist/apps/doc/update_ext.xml)

Example Input Document[edit]

<root>
    <message>Hello World</message>
</root>

Example of Attribute Insert[edit]

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

Result Document[edit]

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

Example of Attribute Update[edit]

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

Result Document[edit]

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