[xquery-talk] XPath Issues in XQuery

Wei, Alice J. ajwei at indiana.edu
Sat Feb 16 18:16:14 PST 2008


Dear David:

   Thanks, the code works out great.
   Just one question, since using // would grab anything from the root as long as the node matches, how come when I used that to find out the value of the <publication_information> does not bring back anything?

Alice
======================================================
Alice Wei
MIS 2008
School of Library and Information Science
Indiana University Bloomington
ajwei at indiana.edu
________________________________________
From: David Carlisle [davidc at nag.co.uk]
Sent: Saturday, February 16, 2008 5:33 PM
To: Wei, Alice J.
Cc: talk at x-query.com
Subject: Re: [xquery-talk] XPath Issues in XQuery

> 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