HighTechTalks DotNet Forums  

Re: XPath

Dotnet XML microsoft.public.dotnet.xml


Discuss Re: XPath in the Dotnet XML forum.



Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old   
Serge Baltic
 
Posts: n/a

Default Re: XPath - 12-11-2007 , 07:05 AM






Hello,

Quote:
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) Serge




Reply With Quote
  #2  
Old   
Anthony Jones
 
Posts: n/a

Default Re: XPath - 12-11-2007 , 07:38 AM







"Serge Baltic" <baltic- (AT) hypersw (DOT) net> wrote

Quote:
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.


Whilst I agree that naming a child element using the same name as the parent
is a little odd. In what way is it a 'Logical error'? Where can these
logic rules be found?

--
Anthony Jones - MVP ASP/ASP.NET




Reply With Quote
Reply




Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.4
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.