I need to find value for a child attribute by giving values for one attibute at the same level and its parent at highere level.
Another requirement is
find value for a child attribute for which another attribute at same level with maximum value and given value for parent at higher level
Here is my XML
`<root>
<ACTS>
<ACT>Play</ACT>
<A>
<Day>1</Day>
<time>Fri Feb 28 13:21:42 IST 2014</time>
</A>
<A>
<Day>2</Day>
<time>Fri Feb 28 13:21:43 IST 2014</time>
</A>
</ACTS>
<ACTS>
<ACT>Study</ACT>
<A>
<Day>1</Day>
<time>Fri Feb 28 13:21:42 IST 2014</time>
</A>
<A>
<Day>2</Day>
<time>Fri Feb 28 13:21:43 IST 2014</time>
</A>
<A>
<Day>3</Day>
<time>Fri Feb 28 13:21:43 IST 2014</time>
</A>
</ACTS>
</root>
`
and the rquirement is to find the value for time attribute by giving values as Day=3 and ACT =Study
find time where ACT =Study and Day= maximum value under ACT=Study
I have tried the same with xpath and ended up with a mess (not able to retrieve values from Nodelist).
someone please guide me xquery and its usage in java for this..
which is best in this situation xquery or xpath.
let $x :=
<root>
<ACTS>
<ACT>Play</ACT>
<A>
<Day>1</Day>
<time>Fri Feb 28 13:21:42 IST 2014</time>
</A>
<A>
<Day>2</Day>
<time>Fri Feb 28 13:21:43 IST 2014</time>
</A>
</ACTS>
<ACTS>
<ACT>Study</ACT>
<A>
<Day>1</Day>
<time>Fri Feb 28 13:21:42 IST 2014</time>
</A>
<A>
<Day>2</Day>
<time>Fri Feb 28 13:21:43 IST 2014</time>
</A>
<A>
<Day>3</Day>
<time>Fri Feb 28 13:21:43 IST 2014</time>
</A>
</ACTS>
</root>
XQuery -
let $maxDay := max($x//ACTS[ACT="Study"]/A/Day)
for $y in $x//ACTS[ACT/text()="Study"]/A[Day/text()=$maxDay]/time
return $y
XPath -
//ACTS[ACT/text()="Study"]/A[Day/text()=max(//ACTS[ACT="Study"]/A/Day)]/time
You said - "someone please guide me xquery and its usage in java for this.. "
For this please refer following posts -
Assuming your Java code is right, I think, your XPath expression put you in the mess. BTW, above links would guide you for the correctness of Java code.
You asked - "which is best in this situation xquery or xpath. "
Google for "Difference between XQuery and XPath", and you will get the answer.
HTH :)