[xquery-talk] getting an attrib value from another attrib value

John Snelson jsnelson at sleepycat.com
Mon Dec 4 13:41:17 PST 2006


The answer you are looking for is:

doc("...")//*[@name = "Torquay"]/@uid

The FLWOR construct is unnecessary in this case.

John

Robert Walpole wrote:
> Hi,
> 
> This may be more XPath than XQuery so I hope you don't mind me posting 
> here.
> 
> I want to write a query that given a string (let's say "Torbay") will 
> return the uid attribute of the element with the name attribute equal to 
> the string value.
> 
> I have only got so far as being able to get the whole node (i.e. 
> including children) with the matching name attribute as follows:
> 
> for $areaserved in doc("...")/*[@name = "Torquay"] return $areaserved
> 
> I should say that the matching name attribute could appear at any level 
> in the XML document and may or may not have child elements.
> 
> Example XML:
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <county name="Devon" uid="0">
>     <district uid="8" name="Torbay">
>         <town uid="210" name="Brixham" pct="Torbay"/>
>         <town uid="211" name="Paignton" pct="Torbay"/>
>         <town uid="212" name="Torquay" pct="Torbay">
>             <settlement name="Babbacombe" uid="979"/>
>             <settlement name="Barton" uid="803"/>
>             <settlement name="Chelston" uid="804"/>
>         </town>
>     </district>
> </county>
> 
> Many Thanks
> Rob Walpole
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> talk at x-query.com
> http://x-query.com/mailman/listinfo/talk



More information about the talk mailing list