- 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