×
INTELLIGENT WORK FORUMS
FOR COMPUTER PROFESSIONALS

Log In

Come Join Us!

Are you a
Computer / IT professional?
Join Tek-Tips Forums!
  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It's Free!
  • Students Click Here

*Tek-Tips's functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

Posting Guidelines

Promoting, selling, recruiting, coursework and thesis posting is forbidden.

Students Click Here

Jobs

XML DOM searching/filters

XML DOM searching/filters

XML DOM searching/filters

(OP)
<Properties>
<Property>
<LocationNumber>023</LocationNumber>
<BuildingNumber>001</BuildingNumber>
<BldgCost>234500</BldgCost>
<BldgSqFt>1200</BldgSqFt>

There are one or more <Property> nodes.
I'd like to work with a <Property> but only want the one with a specific location number in it. Once I find that <Property> I'll be extracting the text from the child nodes, such as <BldgCost>.

I'm having trouble finding syntax that works. This does not:

Set node = objDoc.SelectSingleNode("Properties/Property[LocationNumber/text()='023']")
MsgBox(node.text)

Result is 'Object required: node' from the MsgBox line. I assume that means there's no error in the Select line, it's just not finding anything.

As well, when I get this working, that ='023' will need to be a variable, like:

Set node = objDoc.SelectSingleNode("Properties/Property[LocationNumber/text()=LocNum]")

Mr. Google isn't helping me find an example that works with VBScript.

RE: XML DOM searching/filters

(OP)
Ok hold everything - the trouble is the data. Turns out, and I was stepping in this, there can be multiple buildings in one location and so, more than one LocationNumber = '023' is plausible.

Set Nodes = objDoc.GetElementsByTagName("Properties/Property[LocationNumber/text()='023']")
For Each Node in Nodes
MsgBox(node.text)
Next

So that works. Now I'm having trouble getting a variable to work in place of the constant. This fails:

GetElementsByTagName("Properties/Property[LocationNumber/text()=LocNum]")

Anybody have a sample of filtering with a variable?

Fred

RE: XML DOM searching/filters

Try something like this:

CODE

GetElementsByTagName("Properties/Property[LocationNumber/text()=" & LocNum & "]") 

RE: XML DOM searching/filters

(OP)
Yes, that was it, had to get it outside the quotes.

Red Flag This Post

Please let us know here why this post is inappropriate. Reasons such as off-topic, duplicates, flames, illegal, vulgar, or students posting their homework.

Red Flag Submitted

Thank you for helping keep Tek-Tips Forums free from inappropriate posts.
The Tek-Tips staff will check this out and take appropriate action.

Reply To This Thread

Posting in the Tek-Tips forums is a member-only feature.

Click Here to join Tek-Tips and talk with other members!

Close Box

Join Tek-Tips® Today!

Join your peers on the Internet's largest technical computer professional community.
It's easy to join and it's free.

Here's Why Members Love Tek-Tips Forums:

Register now while it's still free!

Already a member? Close this window and log in.

Join Us             Close