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

Output of Following-Sibling or Preceding Sibling

Wei, Alice J. ajwei at indiana.edu
Wed Feb 20 15:16:08 PST 2008


  Output of Following-Sibling or Preceding Sibling
Dear David:

   Thanks for your explanations.  It must have been my erroneous typo before with the STAMPS.  The line with $ad should have been

    let $ad2 := $ad//ad/head[contains(upper-case(.), 'MUSCLES')]

   For the $pb variable, it turned out that if I do

   let $pb := $nodes/preceding::pb[1]

from my XQuery:

let $ad := fn:collection("xmldb:exist://db/my")
let $journal := $ad//seriesStmt/title[@level='journal'][1]
let $ad2 := $ad//ad/head[contains(upper-case(.), 'MUSCLES')]
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 $para := $nodes/parent::p[1]
let $head := $nodes/ancestor::ad//head[1]
let $note := $nodes/ancestor::ad//note[1]
let $seriesStmt:=$nodes/ancestor::my//seriesStmt
let $pb := $nodes/preceding::pb[1]
return
<ad>
<statistics>
Showing Result: {$count} / {count($sorted_result)}
</statistics>
<source>
<journal>{data($journal)[1]}</journal>
<publication_information>Volume {data($seriesStmt/idno[@type='volume'][1])},
Issue {data($seriesStmt/idno[@type='issue'][1])}</publication_information>
</source>
{$head}
{$nodes}
<description>{$para}</description>
<information>Source from page {$pb}</information>
{$note}</ad>

Brings this:

<ad>
<statistics> Showing Result: 1 / 1</statistics>
<source>
<journal>My Collection</journal>
<publication_information>Volume 1 , Issue 1 </publication_information>
</source>
<head type ="main">FREE POWERFUL MUSCLES FAST</head>
<head type ="main">FREE POWERFUL MUSCLES FAST</head>
<description/>
<information>Source from page
     <pb n="2" xml:id="my000110"/></information>
<note>Dept. P</note>
</ad>

   This does bring the accurate pb variable that I want. However, when I only have one line of <head> in my original source, it brings back twice with the same content. When I have something like

<head type ="main">FREE POWERFUL MUSCLES FAST</head>
<head type ="sub">FREE POWERFUL MUSCLES FAST</head>

  then the above errors do not occur. I have declared that I only wanted

let $head := $nodes/ancestor::ad//head[1]

Is there something wrong with my <head> declaration here? Here is my XML again:

<my>
    <myHeader>
        <fileDesc>
            <titleStmt>
                <title>My Collection</title>
            </titleStmt>
            <sourceDesc>
                <biblFull>
                    <seriesStmt>
                        <title level="journal">My Journal</title>
                        <idno type="volume"> 1 </idno>
                        <idno type="issue"> 1 </idno>
                    </seriesStmt>
                </biblFull>
            </sourceDesc>
        </fileDesc>
    </myHeader>
    <text>
        <body>
           <pb n="1" xml:id="my000108"/>
            <pb n="2" xml:id="my000110"/>
               <div>
                <ad>
                    <head>Be Taller</head>
                    <p>If you wish to know the facts about HEIGHT INCREASE, send 35c for details to
                        TALL-UP.
                        <address>
                            <addressLine>TALL-UP,</addressLine>
                            <addressLine>232 W. Front St.</addressLine>
                            <addressLine>Napoleon, Ohio 42345</addressLine>
                        </address>
                    </p>
                    <note>Dept. NA</note>
                </ad>
                <ad>
                    <head type="main">FREE POWERFUL MUSCLES FAST</head>
                    <head type="sub">FREE</head>
                    <p>Fantastic mew discoveries in the science of body-building. Our method will
                        add inches of powerful muscles to arms, chest, shoulders &amp; legs.
                        Learn secrets on trimming the waist with ultra-modern methods—fast! Results
                        guaranteed! Send for free brochure. Send dime for postage and handling.
                        <address>
                            <addressLine>Universal Bodybuilding</addressLine>
                            <addressLine>Box 485</addressLine>
                            <addressLine>Dearborn, Michigan 48121</addressLine>
                        </address>
                    </p>
                    <note>Dept. P</note>
                </ad>
            </div>
                  <pb n="3" xml:id="my000112"/>
        </body>
    </text>
</my>

Thanks for your help.

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



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.