webForumDet fria alternativet

Hur kontrollerar man om en nod finns?

XML

7 svar · 679 visningar · startad av fedde

Medlem sedan dec. 1999137 inlägg
Frågan#1

I min kundvagn kontrollerar jag lagerantalet på varje produkt. MEN om produkten raderas från sortimentet (dvs. i XML-filen) efter att jag lagt varan i kundvagnen, så fungerar inte koden nedan. För då försöker den hämta ett värde som inte finns. ( Error: Object required )
Jag har försökt kontrollera ifall den är tom på alla möjliga sätt. Men lyckas inte. Har ni någon ide?

'Jag väljer en specific produktnod via:
set objNode = xmlDoc.selectSingleNode("/data/huvudgrupp/produktgrupp/produkt[@id=" & arrProductId(x) & "]")

'Här hämtar jag ut antalvärdet:
strXMLAntal = objNode.childNodes(1).Text

'Och skriver ut värdet:
Response.Write strXMLAntal
Medlem sedan juni 200032 967 inlägg
#2

Jag hade nog provat så här:

set objChildNode = objNode.childNodes(1)
if not objChildNode is nothing then
         strXMLAntal = objChildNode.Text
End if
Medlem sedan dec. 1999137 inlägg
#3

Det var ungefär så jag provade innan med men tyvärr funkar det inte.

Denna raden ger
"Microsoft VBScript runtime error '800a01a8'
Object required"

set objChildNode = objNode.childNodes(1)
Medlem sedan juni 200032 967 inlägg
#4

Då är det väl objNode som är nothing. Du får kontrollera det också.

if not objNode is Nothing
     set objChildNode = objNode.childNodes(1)
     if not objChildNode is nothing then
           strXMLAntal = objChildNode.Text
     End if
End if
Medlem sedan dec. 1999137 inlägg
#5

Härligt! :e Det funkar perfa!!!

Jag har tänkte alldeles för krångligt. Jag försökt kontrollera om det fanns något i objNode.hasChildNodes o liknande.

Det gick att korta ner koden lite. Den behöver ju bara kontrollera objNode.

if not objNode is Nothing then
	strXMLAntal = objNode.childNodes(1).Text
	strVaraFinns = True
Else
	strVaraFinns = False
End if

Tack för hjälpen @nders. Du är en pärla! :birp

Medlem sedan juni 200032 967 inlägg
#6

Varsågod! :)

Jag tycker dock att du borde byta namn på variabeln strVaraFinns. Det är ju inte en sträng du lagrar i variabeln. Ska man använda ungersk notation ska man åtminstone se till att inte ljuga för sig själv och andra. :)

mvh

Medlem sedan dec. 1999137 inlägg
#7

Ok. Är lite slarvig i bland med dem. :r
bolVaraFinns eller bolProductExist ljuger mindre? ;)

Medlem sedan juni 200032 967 inlägg
#8

Japp, bol, bln eller bara b passar bra. :)

279 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
137 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
140 ms — ändringar (db)