J
joe
Hello: I'd really appreciate some feedback, bacause I've been stuck for two
days with this. I am trying to parse XML returns from a certain website,
sent back in response to my URL queries. The root node of the returned XML
has a namespace instruction that I cannot get rid of. Why do I want to do
that, you may ask? Well, I' m really a newbie with XML/XLST/XPath and so on,
but I know that If I paste the XML return into a new XML document, get rid
of the namespace stuff, and use that page instead of the original XML
return, my code works! Below is a sample of my code so far.
'------- being code------------
Dim objXMLDoc, strURL, bLoadResult, objNodeList, x
strURL = http://somesite/xmlreturn?param1=etc¶m2=etc
Set objXMLDoc = Server.CreateObject("MSXML2.DOMDocument.4.0")
objXMLDoc.async = False
objXMLDoc.validateOnParse = False
objXMLDoc.resolveExternals = False
Dim bLoadResult
bLoadResult = objXMLDoc.load(strURL)
If bLoadResult Then
'-- 1 (for additional command explained below)
'-- 2 (for additional command explained below)
Set objNodeList = objXMLDoc.selectNodes("/RootNode/SubNode1")
Response.Write (objNodeList.length&"</br>")
For Each x in objNodeList
With Response
.Write x.selectSingleNode("SubNode2").nodeTypedValue
.Write "</br>"
End With
Next
Else
..... error message here ....
End if
'------- end code------------
As it is above, I can list the items in the copy-pasted XML file mentioned
above (with namespace command deleted). However, with the original XML,
objNodeList.length is 0. I thought I'd have to polish my Xpath instruction,
so I added the following line where the number 1 is commented above:
'-- 1
objXMLDoc.setProperty "SelectionLanguage", "XPath"
I also tried to get rid of the namespace instruction like below, inserting
that
where the number 2 is commented above:
'-- 2
objXMLDoc.setProperty "SelectionNamespaces", "xmlns=''"
I also tried:
objXMLDoc.setProperty "SelectionNamespaces", empty
Well, that's it for my code. Is there any way around this namespace thing,
or does that mean that I must have some XSL
file somewhere that transforms the returned XML? As I said, I don't know
much about all this, and any help is appreciated. Thanks in advance
days with this. I am trying to parse XML returns from a certain website,
sent back in response to my URL queries. The root node of the returned XML
has a namespace instruction that I cannot get rid of. Why do I want to do
that, you may ask? Well, I' m really a newbie with XML/XLST/XPath and so on,
but I know that If I paste the XML return into a new XML document, get rid
of the namespace stuff, and use that page instead of the original XML
return, my code works! Below is a sample of my code so far.
'------- being code------------
Dim objXMLDoc, strURL, bLoadResult, objNodeList, x
strURL = http://somesite/xmlreturn?param1=etc¶m2=etc
Set objXMLDoc = Server.CreateObject("MSXML2.DOMDocument.4.0")
objXMLDoc.async = False
objXMLDoc.validateOnParse = False
objXMLDoc.resolveExternals = False
Dim bLoadResult
bLoadResult = objXMLDoc.load(strURL)
If bLoadResult Then
'-- 1 (for additional command explained below)
'-- 2 (for additional command explained below)
Set objNodeList = objXMLDoc.selectNodes("/RootNode/SubNode1")
Response.Write (objNodeList.length&"</br>")
For Each x in objNodeList
With Response
.Write x.selectSingleNode("SubNode2").nodeTypedValue
.Write "</br>"
End With
Next
Else
..... error message here ....
End if
'------- end code------------
As it is above, I can list the items in the copy-pasted XML file mentioned
above (with namespace command deleted). However, with the original XML,
objNodeList.length is 0. I thought I'd have to polish my Xpath instruction,
so I added the following line where the number 1 is commented above:
'-- 1
objXMLDoc.setProperty "SelectionLanguage", "XPath"
I also tried to get rid of the namespace instruction like below, inserting
that
where the number 2 is commented above:
'-- 2
objXMLDoc.setProperty "SelectionNamespaces", "xmlns=''"
I also tried:
objXMLDoc.setProperty "SelectionNamespaces", empty
Well, that's it for my code. Is there any way around this namespace thing,
or does that mean that I must have some XSL
file somewhere that transforms the returned XML? As I said, I don't know
much about all this, and any help is appreciated. Thanks in advance