[ASP/XML] lege nodes uitlezen

Pagina: 1
Acties:

  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

Topicstarter
Ik heb een stukje code dat door een XML tree loopt.
Nu kom ik bij een Node die leeg kan zijn. En als hij leeg is moet hij worden overgeslagen.

code:
1
2
3
4
5
6
7
8
dim tempNode 
set tempNode = contentNode.firstChild.selectSingleNode("main/visualsmall/img")
                    
if tempNode.xml = "" then
    strResImgsmall = ""
else
   'strResImgsmall = tempNode.xml
end if


alleen dit:
code:
1
if tempNode.xml = "" then

werkt niet, ook met isObject , not isObject of = nothing werkt dt niet. Waar moet ik op checken om te controleren of een Node leeg is?

ik krijg deze foutmelding:
Object required: 'tempNode'

/templates/zoekrecept.asp, line 324
terwijl als ik check op isObject hij gewoon een true teruggeeft

  • bS!
  • Registratie: Februari 2004
  • Laatst online: 28-10-2025

bS!

Je hebt 2 mogelijkheden begrijp ik zo uit je voorbeeld.
mogelijke oplossingen:

1. de node bestaat niet
code:
1
2
3
4
5
6
7
8
dim tempNode 
set tempNode = contentNode.firstChild.selectNodes("main/visualsmall/img")

if tempNode.length > 0 then
  strResImgsmall = tempNode(0).text
else
  strResImgsmall = ""
end if


2. de node bestaat wel maar is leeg
code:
1
2
3
4
5
6
7
8
dim tempNode 
set tempNode = contentNode.firstChild.selectSingleNode("main/visualsmall/img")
                    
if tempNode.text = "" then
   strResImgsmall = ""
else
   strResImgsmall = tempNode.text
end if


Voor jou is oplossing 1 van toepassing aangezien de foutmelding aangeeft dat de node niet bestaat. merk ook op dat .xml nu .text is. Het gebruikt van isObject is naar mijn mening trouwens erg onbetrouwbaar.

[ Voor 40% gewijzigd door bS! op 02-02-2004 15:04 ]


  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

Topicstarter
bS! schreef op 02 februari 2004 @ 14:56:
Je hebt 2 mogelijkheden begrijp ik zo uit je voorbeeld.
mogelijke oplossingen:

1. de node bestaat niet
code:
1
2
3
4
5
6
7
8
dim tempNode 
set tempNode = contentNode.firstChild.selectNodes("main/visualsmall/img")

if tempNode.length > 0 then
  strResImgsmall = tempNode(0).text
else
  strResImgsmall = ""
end if


Voor jou is oplossing 1 van toepassing aangezien de foutmelding aangeeft dat de node niet bestaat. merk ook op dat .xml nu .text is. Het gebruikt van isObject is naar mijn mening trouwens erg onbetrouwbaar.
tnx, de bovenste werkt als ik voor .txt .xml invul. Ik was danig in de war omdat de msdn aangeeft dat het een null zou moeten returnen.

Waarom is het gebruik van isObject onbetrouwbaar?

(ik ben sinds 3 weken weer met asp bezig, ben er jaren niet mee bezig geweest...)

  • bS!
  • Registratie: Februari 2004
  • Laatst online: 28-10-2025

bS!

.text zou gewoon moeten werken? Heb je niet perongeluk .txt neergezet? .xml werkt ook wel inderdaad maar is niet geheel netjes als het puur om de waarde gaat :)

en over isObject:
Mijn ervaring is dat het in de praktijk gewoon niet werkt zoals het zou moeten werken. :)

  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

Topicstarter
o dat zal het waarschijnlijk wel geweest zijn ja :)

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Even voor de duidelijkheid:
code:
1
If bla = nothing

Gaat never nie werke ;)
code:
1
If bla is nothing

Werkt wel, of:
code:
1
If not bla is nothing

Werkt ook ;)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij

Pagina: 1