For Programmers: Free Programming Magazines  


Home > Archive > ASP > June 2005 > XMLDOM / Conditional Check for Object fails









You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

 

Author XMLDOM / Conditional Check for Object fails
joe

2005-05-31, 8:55 pm

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.








joe

2005-05-31, 8:55 pm

With 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



Mark Schupp

2005-05-31, 8:55 pm

try 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.
>
>
>
>
>
>
>
>



joe

2005-05-31, 8:55 pm

Mark Schupp:

Your function worked for me. Thank you!


David Patow

2005-06-09, 3:55 pm

Sorry 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.
Sponsored Links







Also available: Server administration forum archive | Web Design forum archive | Software forum archive | Hardware reviews archive

Copyright 2008 codecomments.com