xquery help please

P

paul.rusu

In the xquery code bellow, i can't seem to get the syntax arranged
starting with this line if (empty($bb)) then . The problem is either
syntax error or i have xquery code shown in the output xml. I would
appreciate help with the syntax of those last lines - how to place the
curly brackets.


for $x in doc ($doc_name)/ProcessValueTrace/Trace
return
<Trace>
{

for $y in $x/DtsResult
let $bb:=for $xx in $y/DtsRequest where (contains($xx/PDU,
string($pdu_byte_pattern))) return $xx
return
:) my problem is from here down. i have 3 outputs - first the beginning
tag and a few tags i just output :)
if (empty($bb)) then
""
else
return
<DtsResult>
{ $y/LogicalLink }
{ $y/ComPrimitive }

:) than i output some selected tags:)
for $z in $y/DtsRequest
where (contains($z/PDU, string($pdu_byte_pattern)))
return
$z

:) than i output the close tag - in case i had something before it:)
if (empty($bb)) then
""
else
</DtsResult>

</Trace>

I tried to place each of the 3 outputs in {..} but i kept getting
error. I played a little with the {} but i didn't get them and the
output right. I appreciate your help.

Best regards.
Paul
 
P

Priscilla Walmsley

Hi,

You don't have to have two different if-then-elses for the start and end
tag, you can just do it in one go, like below. You also had an extra
"return", and need to have { } around the FLWOR expression within the
DtsResult element. You were also missing a } before the </Trace>

for $x in doc ($doc_name)/ProcessValueTrace/Trace
return
<Trace>
{

for $y in $x/DtsResult
let $bb:=for $xx in $y/DtsRequest where (contains($xx/PDU,
string($pdu_byte_pattern))) return $xx
return
:) my problem is from here down. i have 3 outputs - first the beginning
tag and a few tags i just output :)
if (empty($bb)) then
""
else
<DtsResult>
{ $y/LogicalLink }
{ $y/ComPrimitive }

:) than i output some selected tags:)
{for $z in $y/DtsRequest
where (contains($z/PDU, string($pdu_byte_pattern)))
return
$z}
</DtsResult>

}</Trace>

That last FLWOR expression can also be just {$bb}, since it is the same
thing, as in:

<DtsResult>
{ $y/LogicalLink }
{ $y/ComPrimitive }
{ $bb }
</DtsResult>

Hope that helps,
Priscilla
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads

xquery help 0
Please help 2
Code help please 4
XQuery Help 1
Please help me!!! 3
Can't solve problems! please Help 0
Problem with an XQuery statement 0
SENTINEL CONTROL LOOP WHEN DEALING WITH TWO ARRAYS 1

Members online

No members online now.

Forum statistics

Threads
474,001
Messages
2,570,254
Members
46,850
Latest member
VMRKlaus8

Latest Threads

Top