Hello,
> Consider the following XML
>
> <?xml version="1.0" encoding="UTF-8"?>
> <Root>
> <Data>
> <ID>1005</ID>
> <Reference>
> <Reference>ABC</Reference>
> <Country>UK</Country>
> </Reference>
> <Reference>
> <Reference>123</Reference>
> <Country>USA</Country>
> </Reference>
> </Data>
> </Root>
> Using XPath, I would like to: Select the value of the Reference Node,
> Where the ID = 1005, And the Country is USA. The value of the node
> would therefore be 123.
>
> I'm not great with XPath, but had a go and got it completely wrong:
> XPath = "//Data/[ID ="1005"]/../Reference/[Country="USA"]/Reference"
Should be something like /Root/Data[ID='1005']/Reference[Country='USA']/Reference
Square brackets should apply to the node you're selecting, rather than go
as an independent path element.
BTW it's a logical error to have an element named “Reference” take part as
a grouping node at one place and as a value holder in another. That is, the
semantics should be consistend per element name throughout the document.
One of them'd better be renamed.
(H) Serg
|