Subject:Xquery filter by using contains Author:(Deleted User) Date:26 Jun 2009 07:40 AM Originally Posted: 26 Jun 2009 07:39 AM
Hi Stylussees,
I want to select values from an xml file where the tag $Request/Item_1/Item/@code contains a specific value. I have two questions regarding the syntax to use:
1. Question 1: The below example is working, but the one following it, where I search for DAB5_2_0'
for $Request in /eExact/Requests/Request return
if ($Request/Item_1/Item/@code[contains(.,'DAB5')]) then
$Request/Project/@code/string() else ()
for $Request in /eExact/Requests/Request return
if ($Request/Item_1/Item/@code[contains(.,'DAB5_2_0')]) then
$Request/Project/@code/string() else ()
2. Question 2: Apart from the value from question 1 I also want to check on tags where FreeNumber with number="2" is not empty.
Subject:Xquery filter by using contains Author:(Deleted User) Date:28 Jun 2009 03:20 AM
Hi Alberto,
Works like a charm, thanks. One other question though. If I want to test on two conditions being both true, how do I do that?
for $row in doc('file:///e:/Klanten/Cordaid/Conversie/Projectdoelen/040609/Exact_ProjectGoals_basis.xml')/root/row return
if (not(empty($row/PercNrGoods)) and ($row/Goal[contains(.,'4')])) then
concat($row/PrimaProjectID/text(),codepoints-to-string(10))
else ()
It is now returning values where one of the 2 conditions is met.
Subject:Xquery filter by using contains Author:(Deleted User) Date:29 Jun 2009 09:48 AM
Hi Cynthia,
the "and" operator only succeeds if both conditions are true; are you sure that only one is valid? Could you attach a sample of your data so we too can check on the result?
Subject:Xquery filter by using contains Author:(Deleted User) Date:29 Jun 2009 12:09 PM
Hi Alberto,
Double checked it and it turned out there were indeed records for which both statements were true. I checked to quickly at first, it turned out there was more then 1 record per project and I only looked at the first.