|
[XQuery Talk Mailing List Archive Home] [By Date] [By Thread] [By Subject] [By Author] [Recent Entries] [Reply To This Message] Printing Siblings in FunctionsWei, Alice J. ajwei at indiana.eduTue Mar 4 16:34:46 PST 2008
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! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|






