Select XML node with Namespaces using Classic ASP

Posted on 2013-10-22
Medium Priority
Last Modified: 2013-10-23
I have an XML file that uses namespaces. I need to access these nodes using classic ASP. I've done this before on a different XML file that did not use namespaces using something like:

For Each wNode In xmlDoc2.SelectNodes("/inv-balance/item") 

Open in new window

Apparently, that won't work this time since the XML uses namespaces.

Here is the XML file I'm working with. How do I access the nodes using classic ASP and namespaces?

<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<ns2:getInventoryQtyTransitDaysResponse xmlns:ns2="http://impl.webservice.integration.sanmar.com/">
<listResponse xsi:type="ns2:item" xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance">
<color>Iron Grey</color>

<listResponse xsi:type="ns2:item" xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance">
<color>Iron Grey</color>

<message>Request fulfilled successfully</message>

Open in new window

My ASP code so far:

set xmlDoc2 = createObject("MSXML2.DOMDocument")
xmlDoc2.async = False
xmlDoc2.setProperty "ServerHTTPRequest", true
For Each oNode In xmlDoc2.SelectNodes(?????)

Open in new window

Question by:P-Daddy

Author Comment

ID: 39592454
I need to access the size node.
LVL 60

Accepted Solution

Geert Bormans earned 2000 total points
ID: 39593589
first note that (//size) will work since <size> is NOT in a namespace
(there is no default namespace declared)

for the nodes inside namespaces, you need to bind a namespace prefix

(assuming the selectionLanguage is set to XPath:

xmlDoc2.setProperty "SelectionNamespaces", "xmlns:foo='http://impl.webservice.integration.sanmar.com/'"

will allow you to select the nodes //foo:getInventoryQtyTransitDaysResponse

note that I changed the prefix on purpos, it is not the prefix that is important, but the namespace uri it is bound to

Featured Post

Never miss a deadline with monday.com

The revolutionary project management tool is here!   Plan visually with a single glance and make sure your projects get done.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

I recently decide that I needed a way to make my pages scream on the net.   While searching around how I can accomplish this I stumbled across a great article that stated "minimize the server requests." I got to thinking, hey, I use more than one…
Introduction In my previous article (http://www.experts-exchange.com/Microsoft/Development/MS-SQL-Server/SSIS/A_9150-Loading-XML-Using-SSIS.html) I showed you how the XML Source component can be used to load XML files into a SQL Server database, us…
In response to a need for security and privacy, and to continue fostering an environment members can turn to for support, solutions, and education, Experts Exchange has created anonymous question capabilities. This new feature is available to our Pr…
If you are looking for an automated solution for backup single or multiple Office 365 user mailboxes to Outlook data file, then you can use Kernel Office 365 Backup & Restore tool. Go through the video to check out the steps to backup single or mult…

600 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question