|
[XQuery Talk Mailing List Archive Home] [By Date] [By Thread] [By Subject] [By Author] [Recent Entries] [Reply To This Message] Changing the content of an XML documentPiewald, Georg georg.piewald at siemens.comTue Sep 2 13:58:24 PDT 2008
Wolfgang [mailto:http://x-query.com/mailman/listinfo/talk] wrote:
>
>> The identity transform will work, and is essentially the
>> same as the
>> transformation function that Wolfgang suggests. However I think a
>> transform expression is easier to understand if eXist
>> supports XQuery
>> Update:
>>
>> copy $a := $tree
>> modify replace value of node $a//subnode with
>> if($condition) then "some text" else "some other text"
>> return $a
>
> Right now, updates are only supported on documents stored in
> the db (we
> directly modify the persistent dom). To use this approach,
> the document
> fragment would need to be saved first, which is probably too much
> overhead for a one-time use.
>
Ok, XQuery Update looks most convenient to me and I don't mind if I
actually do alter the files stored in the db. But I still can't get it
to work, as I don't really understand the required syntax (as described
at http://exist.sourceforge.net/update_ext.html).
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'
};
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?).
Thanks for all the good answers so far!
Georg
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|






