By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
424,851 Members | 1,111 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 424,851 IT Pros & Developers. It's quick & easy.

Problem while retrieving data based on condition

P: n/a
Hi All,

I have to get the values of "reading" and "value" elements of context
Person/Category/Group/ser.These values must be on condition
based,means I have to get the values of "reading" and "value" if
entity="abc" and value="1" , and entity= "def" and value="2" at the
Person/Category/Group/series/Key.

My xml source file is as follows.

<?xml version="1.0" encoding="UTF-8"?>
<Person>
<Category>
<Group>
<series>
<Key>
<Main entity="abc" value="1"></Main>
<Main entity="def" value="2"></Main>
</Key>
</series>
<ser>
<reading>age</reading>
<value>100</value>
</ser>
<ser>
<reading>height</reading>
<value>6</value>
</ser>
<ser>
<reading>weight</reading>
<value>80</value>
</ser>
</Group>
</Category>
</Person>
I am new to xml. I don't know how to write xpath for such a thing.
Please take a look at and give me suggestions how i should i approach
this problem.

Thanks and Regards,
Pathik

Apr 2 '07 #1
Share this Question
Share on Google+
1 Reply


P: n/a
Pathik wrote:
I have to get the values of "reading" and "value" elements of context
Person/Category/Group/ser.These values must be on condition
based,means I have to get the values of "reading" and "value" if
entity="abc" and value="1" , and entity= "def" and value="2" at the
Person/Category/Group/series/Key.

My xml source file is as follows.

<?xml version="1.0" encoding="UTF-8"?>
<Person>
<Category>
<Group>
<series>
<Key>
<Main entity="abc" value="1"></Main>
<Main entity="def" value="2"></Main>
</Key>
</series>
<ser>
<reading>age</reading>
<value>100</value>
</ser>
<ser>
<reading>height</reading>
<value>6</value>
</ser>
<ser>
<reading>weight</reading>
<value>80</value>
</ser>
</Group>
</Category>
</Person>
It is not clear to me which ser/reading and ser/value element you are
looking for as I don't see the relationship between the series/Key/Main
elements and those ser elements. Are you looking for all reading and
value elements if the document contains the Main elements meeting your
conditions on the attributes?
I am new to xml. I don't know how to write xpath for such a thing.
You need to learn about predicates which can be put into square brackets
e.g.
/Person/Category/Group
selects all Group elements with that path, then you can add a predicate
to filter them in square brackets e.g.
/Person/Category/Group[series/Key[Main[@entity = 'abc' and @value =
'1'] and Main[@entity = 'def' and @value = '2']]]
filters based on series/Key descendants for which another condition
holds, there is a Main child meeting your first attribute condition and
there is a Main child meeting the second attribute condition.
Then if you are looking for ser/reading desdendant elements of that
Group element you can add
/Person/Category/Group[series/Key[Main[@entity = 'abc' and @value =
'1'] and Main[@entity = 'def' and @value = '2']]]/ser/reading

--

Martin Honnen
http://JavaScript.FAQTs.com/
Apr 2 '07 #2

This discussion thread is closed

Replies have been disabled for this discussion.