Code Comments
Programming Forum and web based access to our favorite programming groups.I am having problems checking for the value of an XMLDOM object .
Lets say my XMLDOM object was successfully created as objXMLDoc, and that
has several nodes on it. In the case of a VBScript loop like below:
'-------------------
For x = 1 To 10
Set oItemPrice = objXMLDoc.selectSingleNode("//Item[x]/Price")
'--- conditional stuff that fails here
Next
'-------------------
some of the Items don't have a price, therefore the object oItemPrice will
fail at some point. So I want to check for this failure, but everything I do
gives me errors.
Examples:
1. If not oItemPrice Then
2. If oItemPrice.lenght = 0 Then
3. If oItemPrice = empty or oItemPrice = "" or isnull(oItemPrice) Then
4. If not (oItemPrice) Then
I really don't know what to do. Most errors are like:
" Object doesn't support this property or method"
Any help is appreciated.
Post Follow-up to this messageWith JScript one can just go:
oItemPrice = xmlDoc.selectSingleNode("//Item["+x+"]/Price");
if (oItemPrice) { ...do stuff }
else {...do other stuff}
but because my XMLDOM code must go inside VBScrip pages, I have to figure
the other one out.
I tried to mix both languages up and ended up with even more problems.
> some of the Items don't have a price, therefore the object oItemPrice will
> fail at some point. So I want to check for this failure, but everything I
do
> gives me errors.
> Examples:
>
> 1. If not oItemPrice Then
> 2. If oItemPrice.lenght = 0 Then
> 3. If oItemPrice = empty or oItemPrice = "" or isnull(oItemPrice) Then
> 4. If not (oItemPrice) Then
Post Follow-up to this messagetry this:
If Not IsDomTextNode( oItemPrice) Then
...
'check if selectSingleNode returned a valid text node
Function IsDomTextNode( ByRef objNode )
Dim strTmp
On Error Resume Next
strTmp = objNode.text
If Err.Number = 0 Then
IsDomTextNode = True
Else
IsDomTextNode = False
End If
End Function
You should also be able to use the nodeType property of the node to see if
it is the type you expect. I can't remember why I used to above approach.
--
--Mark Schupp
"joe" <nobody@nowhere.com> wrote in message
news:NU1ne.9698$_r1.479079@news20.bellglobal.com...
>I am having problems checking for the value of an XMLDOM object .
>
> Lets say my XMLDOM object was successfully created as objXMLDoc, and that
> has several nodes on it. In the case of a VBScript loop like below:
>
> '-------------------
> For x = 1 To 10
>
> Set oItemPrice = objXMLDoc.selectSingleNode("//Item[x]/Price")
>
> '--- conditional stuff that fails here
>
> Next
> '-------------------
>
> some of the Items don't have a price, therefore the object oItemPrice will
> fail at some point. So I want to check for this failure, but everything I
> do
> gives me errors.
> Examples:
>
> 1. If not oItemPrice Then
> 2. If oItemPrice.lenght = 0 Then
> 3. If oItemPrice = empty or oItemPrice = "" or isnull(oItemPrice) Then
> 4. If not (oItemPrice) Then
>
> I really don't know what to do. Most errors are like:
> " Object doesn't support this property or method"
>
> Any help is appreciated.
>
>
>
>
>
>
>
>
Post Follow-up to this messageMark Schupp: Your function worked for me. Thank you!
Post Follow-up to this messageSorry about coming late to this party, but I think there's a much simpler
solution ...
Set oItemPrice = objXMLDoc.selectSingleNode("//Item[x]/Price")
If Not oItemPrice Is Nothing Then
' You can use oItemPrice in here.
End If
Yes, VB and VBScript are a little odd in this area, because they prefer to
use the default property of an object when assigning and comparing. This is
why there is the special "Set" statement and the above "Is" operator, which
act upon the object pointer itself, not its default property.
Post Follow-up to this messagePowered by vBulletin
Copyright 2000-2006 Jelsoft Enterprises Limited.