[xquery-talk] Changing the content of an XML document
Wolfgang
wolfgang at exist-db.org
Tue Sep 2 14:18:22 PDT 2008
> I tried the following, which is obviously wrong:
>
> declare function local:alter() {
> let $myfile := doc('/db/myfile.xml')
> return update value $myfile/subnode/text() with
> 'some other text'
> };
No, that's basically ok. Just make sure that $myfile/subnode/text()
returns something. I guess you may need $myfile//subnode/text() instead.
Note: eXist's update syntax is still based on some old proposals (the
implementation nevertheless works very well). The first XQuery update
drafts were published later and I had no time to adopt this stuff yet
(it doesn't have the highest priority for me personally).
> I'm neither sure how to specify the document I want to alter (the doc()
> function is surely wrong since it loads the file into memory) nor how to
> select the textnode using XPath (is /text() required here?).
doc("/db/myfile.xml") doesn't "load" the document into memory (it is a
persistent document whose nodes reside on disk). It just returns a
reference to that document.
Wolfgang
More information about the talk
mailing list