XPath query help with getting parent nodes

M

mike

Hello,
I am new to XPATH and am having a hard time selecting some nodes.
I want to select all the record nodes where Status = 'Unprocessed' or
'Queued' (that part I can get) but additionally I only want the ones
where the Field/Fieldname ='ChangeType' and Field/Value = 'SN'
I have //ExtractInfo/Record[Status='UnProcessed' or
Status='Queued']/Field[Fieldname='ChangeType' and Value='SN'] but that
gets the field nodes, I need the record nodes.
Below is a snippet of the abbreviated XML doc:
<Extract>
<ExtractInfo>
<Status>UnProcessed</Status>
<Record>
<RecordNumber>1</RecordNumber>
<Status>UnProcessed</Status>
<Field>
<Fieldname>ChangeType</Fieldname>
<Value>SM</Value>
</Field>
</Record>
<Record>
<Record>
<RecordNumber>2</RecordNumber>
<Status>UnProcessed</Status>
<Field>
<Fieldname>ChangeType</Fieldname>
<Value>SN</Value>
</Field>
</Record>
<Record>
</ExtractInfo>
</Extract>

Any help would be graetly appreciated

Thanks
 
M

Martin Honnen

I am new to XPATH and am having a hard time selecting some nodes.
I want to select all the record nodes where Status = 'Unprocessed' or
'Queued' (that part I can get) but additionally I only want the ones
where the Field/Fieldname ='ChangeType' and Field/Value = 'SN'
I have //ExtractInfo/Record[Status='UnProcessed' or
Status='Queued']/Field[Fieldname='ChangeType' and Value='SN'] but that
gets the field nodes, I need the record nodes.

//ExtractInfo/Record[
Status='UnProcessed' or Status='Queued' and
Field[Fieldname='ChangeType' and Value='SN']]
 
B

Bjoern Hoehrmann

* (e-mail address removed) wrote in comp.text.xml:
I am new to XPATH and am having a hard time selecting some nodes.
I want to select all the record nodes where Status = 'Unprocessed' or
'Queued' (that part I can get) but additionally I only want the ones
where the Field/Fieldname ='ChangeType' and Field/Value = 'SN'

You have to formulate these extra conditions as predicates like so:

//Record[ (Status = 'UnProcessed' or Status = 'Queued') and
Field[Fieldname = 'ChangeType' and Value = 'SN'] ]
 
M

mike

Thanks,
I was dancing all around it. the nested [] is what was tripping me up.

Martin said:
I am new to XPATH and am having a hard time selecting some nodes.
I want to select all the record nodes where Status = 'Unprocessed' or
'Queued' (that part I can get) but additionally I only want the ones
where the Field/Fieldname ='ChangeType' and Field/Value = 'SN'
I have //ExtractInfo/Record[Status='UnProcessed' or
Status='Queued']/Field[Fieldname='ChangeType' and Value='SN'] but that
gets the field nodes, I need the record nodes.

//ExtractInfo/Record[
Status='UnProcessed' or Status='Queued' and
Field[Fieldname='ChangeType' and Value='SN']]
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,994
Messages
2,570,223
Members
46,810
Latest member
Kassie0918

Latest Threads

Top