Link to home
Start Free TrialLog in
Avatar of nthawkins1971
nthawkins1971Flag for Hong Kong

asked on

Classic ASP and XML - Selecting a specific node

Hi, I' need to select a specific node in an xml doc... i have this which gives me everything

For Each xmlNode In objXML.documentElement.selectNodes("Data")

but i need a single node and its related nodes that has a specific value.. please see the xml

for example: I need to select only the Data where Bookcode = NEA-CSOP

Thank you

<DocumentElement>
<Data>
  <BookCode>NEA-CSOP</BookCode>
  <BPSday>3</BPSday>
  <BPSwk>6</BPSwk>
  <BPSmth>8</BPSmth>
  <Trackday>-44.6</Trackday>
  <TrackPnL>0</TrackPnL>
  <WAIVImv>0.239</WAIVImv>
  <WAIVexp>0.252</WAIVexp>
  <x90Day>0.256</x90Day>
</Data>

<Data>
<BookCode>NEA-EA1</BookCode>
<BPSday>18</BPSday>
<BPSwk>39</BPSwk>
<BPSmth>44</BPSmth>
<Trackday>-23.5</Trackday>
<TrackPnL>0</TrackPnL>
<WAIVImv>0.219</WAIVImv>
<WAIVexp>0.217</WAIVexp>
<x90Day>0.256</x90Day>
</Data>

<Data>
<BookCode>NEK-MV4</BookCode>
<BPSday></BPSday>
<BPSwk></BPSwk>
<BPSmth></BPSmth>
<Trackday></Trackday>
<TrackPnL></TrackPnL>
<WAIVImv></WAIVImv>
<WAIVexp></WAIVexp>
<x90Day></x90Day>
</Data>
<DocumentElement>

Open in new window

Avatar of Flabio Gates
Flabio Gates

Can you try:
For Each xmlNode In objXML.documentElement.selectNodes("Data[text()='NEA-CSOP']")

Open in new window

Avatar of nthawkins1971

ASKER

Doesn't seem to work, however it doesnt cause an error.. should I add BookCode in some way... like, Data.BookCode[text()='NEA-CSOP' ?


For Each xmlNode In objXML.documentElement.selectNodes("Data[text()='NEA-CSOP']")
Data/BookCode[text()='NEA-CSOP']
But that would get you the BookCode node.
You'll need to get back up 1 level to the Data node.
Not sure as I'm on my phone but it would look like
Data/BookCode[text()='NEA-CSOP']/parent-node::*
Avatar of Ryan Chong
try this instead.

Data[BookCode/text()='NEA-CSOP']

Open in new window

Absolutely perfect! thanks
ASKER CERTIFIED SOLUTION
Avatar of Flabio Gates
Flabio Gates

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
well, absolutely perfect but yet not accepted as answer?