[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 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
Showing Result: {$count} / {count($sorted_result)}
<publication_information>Volume {data($seriesStmt/idno[@type='volume'][1])}, Issue {data($seriesStmt/idno[@type='issue'][1])}</publication_information>

produce this

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

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


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