W3C home > Mailing lists > Public > www-ql@w3.org > July to September 2005

Re: XQuery - XPath: Get position of Element TAG (not element)

From: Andrew Eisenberg <andrew.eisenberg@us.ibm.com>
Date: Fri, 19 Aug 2005 11:19:31 -0400
To: Jule Kleine <listmail@web.de>
Cc: www-ql@w3.org
Message-ID: <OF7E94DBC1.2C4BD22B-ON85257062.00520CBF-85257062.00542F94@us.ibm.com>
You might want to write this as:

xquery version "1.0";

for $parent in doc("sample.xml")/parent
let $oldestson:= $parent/oldestSon
let $youngestson:= $parent/youngestSon

where (
$parent/*[1] instance of element(oldestSon)
and $parent/*[2] instance of element(youngestSon)
)

return (
<success/>
)

                                                -- Andrew

--------------------
Andrew Eisenberg
IBM
4 Technology Park Drive
Westford, MA  01886

andrew.eisenberg@us.ibm.com
Phone: 978-399-5158    Fax: 978-399-7012





Jule Kleine <listmail@web.de> 
Sent by: www-ql-request@w3.org
08/16/2005 07:07 AM

To
www-ql@w3.org
cc

Subject
XQuery - XPath: Get position of Element TAG (not element)








Hi,

I would like to check, if the name of the second element of a parent 
element is "youngestSon". Is it possible to query this with xpath/xquery 
(I use xquery with xpath-expressions, in fact I already know the name of 
the element but want to get sure with an exist-statement, that the 
element's position is 2) ?

<parent>
<oldestSon>A</oldestSon>
<youngestSon>B</youngestSon>
</parent>

Note, that the child element names are different. What I dont need is the 
second son in the following example (therefor I could use 
/parent/son[position()==2] )

<parent>
<son>A</son>
<son>B</son>
</parent>

----
My XQuery is:

xquery version "1.0";

for $parent in doc("sample.xml")/parent
let $oldestson:= $parent/oldestSon
let $youngestson:= $parent/youngestSon

where (
exists($parent)
and exists($oldestson)
and exists($youngestson)
)

return (
<success/>
)

-----
The Query checks, if in the sample-document there exists a parent with 
oldestSon and youngestSon, but doesnt make sure, that oldestSon comes 
before youngestSon. I could use

where $oldestson < $youngestson

but have cases where I dont know all elements (and therefor nothing about 
oldestson), so would like something like

where $youngestson "IS SECOND CHILD OF PARENT"



Thank you for any help!!!

Jule















Thank you for any help!
Jule
_________________________________________________________________________
Mit der Gruppen-SMS von WEB.DE FreeMail können Sie eine SMS an alle 
Freunde gleichzeitig schicken: http://freemail.web.de/features/?mc=021179
Received on Friday, 19 August 2005 15:21:07 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 20:17:17 UTC