[XQuery Talk Mailing List Archive Home] [By Date] [By Thread] [By Subject] [By Author] [Recent Entries] [Reply To This Message]

Printing Siblings in Functions

Wei, Alice J. ajwei at indiana.edu
Tue Mar 4 16:34:46 PST 2008


  Printing Siblings in Functions
Hi, Pam:

   I am not sure what you mean here, but I have just fixed my xquery now that it is working properly.

declare variable $data := fn:collection("xmldb:exist://db/cbml")//ad;
declare variable $s := $data/head[contains(upper-case(.), 'STAMP')];

declare function local:unique-nodes-by-value($seq as element()*) as
element()*
{
for $d in distinct-values($seq)
let $journal := $seq[. =$d][1]/ancestor::cbml//seriesStmt/title[@level='journal']
let $volume := $seq[. =$d][1]/ancestor::cbml//seriesStmt/idno[@type='volume']
let $issue := $seq[. =$d][1]/ancestor::cbml//seriesStmt/idno[@type='issue']
let $head2 := $seq[.=$d][1]/parent::ad/child::head
let $para := $seq[.=$d][1]/parent::ad/child::p
let $note := $seq[.=$d][1]/parent::ad/child::note
order by $d
 return
<ad>
<information_source>
{$journal}
<publication>Volume {data($volume)}, Issue {data($issue)}</publication>
</information_source>
{$head2}
<description>{$para}</description>
{$note}</ad>
        };
local:unique-nodes-by-value($s)

Output:

<ad>
<information_source>
<title level="journal">My Collection</title>
<publication>Volume 1 , Issue 1 </publication>
</information_source>
<head>Complimentary Collection of 50 Different U.S. Stamps</head>
<description>
<p>Receive this great Collection for only 26c mailing and handling to introduce our superb U.S. Approval sections—100 year old classics. Airmails, comments, etc. Buy any or none, return balance, cancel anytime.
<address>
<addressLine>
<emph rend="bold">Globes Stamps.</emph>
</addressLine>
<addressLine>276 Park Ave. Sq.</addressLine>
<addressLine>New York, NY. 18010.</addressLine>
</address>
</p>
</description>
<note>Dept. 323</note>
</ad>

It turns out to be some XPath expression with the number of nodes it has to be printed.
Unless you have other ideas?

Alice
======================================================
Alice Wei
MIS 2008
School of Library and Information Science
Indiana University Bloomington
http://x-query.com/mailman/listinfo/talk
________________________________________
From: pam clark [http://x-query.com/mailman/listinfo/talk]
Sent: Tuesday, March 04, 2008 4:32 PM
To: Wei, Alice J.
Subject: Re:  Printing Siblings in Functions

Alice cx me from your talk query.

pc

"Wei, Alice J." <http://x-query.com/mailman/listinfo/talk> wrote:
Hi,

I have an XQuery as follows:

declare variable $data :=

High School

Diploma & Ring
YOURS Through Home Study

Prepare for GED or College Entrance

400 N. Interurban Richardson,
Texas 75080



Texts Purchased by: Departments of Education·Private
Schools·Colleges
Mail this Coupon NOW. For Persons 18 or Over

United Schools and Services Dept. M676
Box 1068, Richardson, Texas 75080


Please rush FREE information about High School


;
declare variable $s := $data/head[contains(upper-case(.),
'SCHOOL')];
declare function local:unique-nodes-by-value($seq as element()*) as
element()*
{
for $d in distinct-values($seq)
let $head := $seq/parent::ad/descendant::head
return {$head[. = $d][1]}
};
local:unique-nodes-by-value($s)


What I want to do is to extract the entire node and have it ordered by the "content within the first position of the head node,"
However, when I run the script, this is what it gives me:



High School

Diploma & Ring


My intended output is as follows:


High School

Diploma & Ring
YOURS Through Home Study


Have I done something wrong?
Any suggestion is appreciated.

Alice
======================================================
Alice Wei
MIS 2008
School of Library and Information Science
Indiana University Bloomington
http://x-query.com/mailman/listinfo/talk

_______________________________________________
http://x-query.com/mailman/listinfo/talk
http://x-query.com/mailman/listinfo/talk


________________________________
Never miss a thing. Make Yahoo your homepage.<http://us.rd.yahoo.com/evt=51438/*http://www.yahoo.com/r/hs>



Purchase Stylus Studio Online Today!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2007 All Rights Reserved.