[xquery-talk] XPath Issues in XQuery

David Carlisle davidc at nag.co.uk
Sat Feb 16 22:33:55 PST 2008


> I hope the relationship may be a little clearer now.
a little, it appears that my previous guess was wrong, the volume and
issue are not descendants of £nodes but you do want then to depend on
this node, you just want to go up to <my> and then down again.

let $ad := (:fn:collection("xmldb:exist://db/my"):) my
let $ad2 := $ad//ad/head[contains(upper-case(.), 'MUSCLE')]
let $sorted_result:=
for $doc in distinct-values($ad2)
order by $doc
return $doc
for $r at $count in $sorted_result
let $nodes := $ad2[. = $r][1]
let $seriesStmt:=$nodes/ancestor::my//seriesStmt
return
<ad>
<statistics>
Showing Result: {$count} / {count($sorted_result)}
</statistics>
<source>
<journal>{data($seriesStmt/title[@level='journal'][1])}</journal>
<publication_information>Volume {data($seriesStmt/idno[@type='volume'][1])}, Issue {data($seriesStmt/idno[@type='issue'][1])}</publication_information>
</source>
{$nodes}
</ad>

produce this

$ saxon9q -s:alice.xml alice.xq
<?xml version="1.0" encoding="UTF-8"?>
<ad>
   <statistics>
Showing Result: 1 / 1</statistics>
   <source>
      <journal>My Journal</journal>
      <publication_information>Volume  1 , Issue  1 </publication_information>
   </source>
   <head type="main">FREE POWERFUL MUSCLES FAST</head>
</ad>


note I commented uput the database call and replaced it to access the
singe posted file.

David

________________________________________________________________________
The Numerical Algorithms Group Ltd is a company registered in England
and Wales with company number 1249803. The registered office is:
Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United Kingdom.

This e-mail has been scanned for all viruses by Star. The service is
powered by MessageLabs. 
________________________________________________________________________


More information about the talk mailing list