[xquery-talk] Printing Siblings in Functions

Wei, Alice J. ajwei at indiana.edu
Sun Mar 2 20:47:58 PST 2008


Hi, Florence:

  Sorry for not making this clear enough.
 What I am intending to do is to select the "entire" head element as long as any of the siblings have "SCHOOL" in them.

Therefore, for a fragment like the one in the following, even though the word "School" is contained only in the <head> element where @type='main', I wanted to extract the entire <head> element.

Is this possible?

Here is the query again:

declare variable $data :=
<ad>
<head type ="main">High School
<lb/>
Diploma &amp; Ring</head>
<head type ="sub">YOURS Through Home Study</head>
<description>
<p>Prepare for GED or College Entrance
<address>
<addressLine>400 N. Interurban Richardson,</addressLine>
<addressLine>Texas 75080</addressLine>
</address>
</p>
<p>
<emph rend ="bold">Texts Purchased by: Departments of Education·Private
Schools·Colleges</emph>
Mail this Coupon NOW. For Persons 18 or Over
<address>
<addressLine>United Schools and Services Dept. M676</addressLine>
<addressLine>Box 1068, Richardson, Texas 75080</addressLine>
</address>
</p>
<p>Please rush FREE information about High School</p>
</description>
</ad>;
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  <ad>{$head[. = $d][1]}</ad>
};
local:unique-nodes-by-value($s)

Thanks for your help.
======================================================
Alice Wei
MIS 2008
School of Library and Information Science
Indiana University Bloomington
ajwei at indiana.edu
________________________________________
From: Florent Georges [lists at fgeorges.org]
Sent: Sunday, March 02, 2008 6:25 PM
To: Wei, Alice J.
Subject: Re: [xquery-talk] Printing Siblings in Functions

"Wei, Alice J." wrote:

> $data/head[contains(upper-case(.), 'SCHOOL')];
> [...]
>  My intended output is as follows:
> [...]
> <head type ="sub">YOURS Through Home Study</head>
> [...]
> Have I done something wrong?

  The expected head element doesn't match the predicate you are using
to select head elements.

  Regards,

--drkm
      _____________________________________________________________________________
Ne gardez plus qu'une seule adresse mail ! Copiez vos mails vers Yahoo! Mail http://mail.yahoo.fr




More information about the talk mailing list