Christian,
copy
$c
:=
<entry>
<
id
>1</
id
>
<title>How
to
use a transform expression</title>
<updated>2011-02-23</updated>
<author>
<
name
>BaseX Team</
name
>
<uri>http://basex.org</uri>
</author>
<childentry> 1 </childentry>
<childentry> 2 </childentry>
<childentry> 3 </childentry>
<
content
type=
"html"
>Transform expression example created
by
BaseX Team</
content
>
</entry>
modify
(
replace
value
of
node
$c
//
name
with
'BaseX'
,
replace
value
of
node
$c
//
content
with
concat
(
'Copy of: '
,
$c
//
content
),
insert
node
<member>Joey</member>
into
$c
//author
for $childentry in $c//childentry
replace value of $childentry with concat('New Child: ', $c//childentry/text())
)
return
$c
<entry>
<
id
>1</
id
>
<title>How
to
use a transform expression</title>
<updated>2011-02-23</updated>
<author>
<
name
>BaseX</
name
>
<uri>http://basex.org</uri>
<member>Joey</member>
</author>
<childentry>
New Child: 1
</childentry>
<childentry>
New Child: 2
</childentry>
<childentry>
New Child: 3
</childentry>
<
content
type=
"html"
>Copy
of
: Transform expression example created
by
BaseX Team</
content
>
</entry>
Hi Sony,
to help others with the same question, I allowed myself to
add a modified version of your example to our
documentation [1].
Regards,
Lukas
[1] http://docs.basex.org/wiki/Update#transform
On Wed, Feb 23, 2011 at 6:58 AM, Sony Vijay <sony.vibh@gmail.com> wrote:Christian,Thank you for the quick and helpful reply.- SonyOn Tue, Feb 22, 2011 at 5:56 PM, Christian Grün <christian.gruen@gmail.com> wrote:
Sony,
the following query might do what you want:
copy $c :=
<entry xmlns="http://www.w3.org/2005/Atom"modify (
xmlns:libx="http://libx.org/xml/libx2">
<id>1</id>
<title>Link Amazon By ISBN</title>
<updated>2010-09-29T18:37:48.592Z</updated>
<author>
<name>LibX Team</name>
<uri>http://libx.org</uri>
<email>libx.org@gmail.com</email>
</author>
<content type="html">Content created by LibX Libapp Builder</content>
</entry>
replace value of node $c//*:name with 'Sony',
replace value of node $c//*:content with
concat('Copy of: ', $c//*:content)
)
return $c
Best,
Christian
___________________________
> _______________________________________________
On Tue, Feb 22, 2011 at 11:43 PM, Sony Vijay <sony.vibh@gmail.com> wrote:
> Hi,
> I am using BaseX 6.5. I am trying to transform a given node using an
> XQuery.
>
> Say, I have an node like so:
> <entry xmlns="http://www.w3.org/2005/Atom"
> xmlns:libx="http://libx.org/xml/libx2">
> <id>1</id>
> <title>Link Amazon By ISBN</title>
> <updated>2010-09-29T18:37:48.592Z</updated>
> <author>
> <name>LibX Team</name>
> <uri>http://libx.org</uri>
> <email>libx.org@gmail.com</email>
> </author>
> <content type="html">Content created by LibX Libapp Builder</content>
> </entry>
> I am trying to send this node to an xquery which is expected to do the
> following actions:
>
> create a copy of this node (so that the actual node in the database does not
> change),
> transform/modify the duplicate copy of the given node
> return the modified duplicate copy of the given node
>
> I would expect the output to be like so:
> <entry xmlns="http://www.w3.org/2005/Atom"
> xmlns:libx="http://libx.org/xml/libx2">
> <id>1</id>
> <title>Link Amazon By ISBN</title>
> <updated>2010-09-29T18:37:48.592Z</updated>
> <author>
> <name>Sony</name>
> <uri>http://libx.org</uri>
> <email>libx.org@gmail.com</email>
> </author>
> <content type="html">Copy of: Content created by LibX Libapp
> Builder</content>
> </entry>
> I tried to perform the non-updating functions using transform and also tried
> to use a pending update list
> (Reference: http://docs.basex.org/wiki/Update#transform). None of this works
> as expected. Could you refer me to a more detailed documentation for
> performing such transform operations on nodes ?
> Thanks,
> Sony
>
> BaseX-Talk mailing list
> BaseX-Talk@mailman.uni-konstanz.de
> https://mailman.uni-konstanz.de/mailman/listinfo/basex-talk
>
>
_______________________________________________
BaseX-Talk mailing list
BaseX-Talk@mailman.uni-konstanz.de
https://mailman.uni-konstanz.de/mailman/listinfo/basex-talk