[ASP] problemen met Eval()

Pagina: 1
Acties:

  • wizzkizz
  • Registratie: April 2003
  • Laatst online: 19-12-2025

wizzkizz

smile...tomorrow will be worse

Topicstarter
Ik ben bezig met het maken van een XML-processor op basis van de XML-parser AspXml.

Nu heb ik de volgende code:
ASP:
1
2
3
4
sTag = cStr(oNode.Tag) & "("""& Replace(cStr(oNode.GetXml),"""","""""") &""")"
sTag1="P("" <p id=""""test"""" title=""""0jjhj"""">test</p> "")"
sOutput = sOutput & eval(sTag)
sOutput1 = sOutput1 & eval(sTag1)

offtopic:
ja, ik weet dat het escapen in VBScript beroerd gaat


sTag en sTag1 bevatten beiden dezelfde string, alleen is de manier waarop de string is opgebouwd wat anders.

Nu krijg ik bij het printen van sOutput een foutmelding en bij het printen van sOutput1 niet. De foutmelding is:

code:
1
2
3
4
Soort fout:
Compilatiefout Microsoft VBScript (0x800A0409)
Tekenreeksconstante is niet afgesloten
/cms/editor/default.asp, line 118


Line 118 is de regel met idd het evalueren van sTag.

Gebruik ik de volgende code: eval("sTag") en eval("sTag1"), dan geven beide strings (sOutput en sOutput1) exact hetzelfde weer, nl:
code:
1
P(" <P id=""test"" title=""0jjhj"">test</P> ")

P(code) staat in dit geval voor een functieaanroep.

Rara hoe kan dit :? :?

Make it idiot proof and someone will make a better idiot.
Real programmers don't document. If it was hard to write, it should be hard to understand.


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 24-05 14:53

NMe

Quia Ego Sic Dico.

Aan je foutmelding te zien sluit je ergens een quote niet af...

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • wizzkizz
  • Registratie: April 2003
  • Laatst online: 19-12-2025

wizzkizz

smile...tomorrow will be worse

Topicstarter
ja, maar het probleem is dat wanneer ik de beide variabelen op deze manier evalueer:

eval("sTag") en eval("sTag1")

er exact hetzelfde uitkomt. Dat is de string zoals die geevalueerd wordt mbv

eval(sTag) en eval(sTag1)

Beide strings zijn dus precies hetzelfde en zouden dus hetzelfde geevalueerd moeten worden :?


P.S. in dit geval is eval(sTag) == eval(eval("sTag")) en idem met sTag1. mss voor de duidelijkheid

[ Voor 10% gewijzigd door wizzkizz op 11-05-2004 21:15 . Reden: typo ]

Make it idiot proof and someone will make a better idiot.
Real programmers don't document. If it was hard to write, it should be hard to understand.


  • wizzkizz
  • Registratie: April 2003
  • Laatst online: 19-12-2025

wizzkizz

smile...tomorrow will be worse

Topicstarter
ow oo, wat dom 8)7 8)7 8)7

In die oNode.GetXml bleek nog een carriage-return and linefeed (vbCrLf) te zitten, die ik bij de uitvoer naar de browser niet kon vinden. Pas toen ik het de broncode ging bekijken, had ik het door 8)7 8)7 8)7

Make it idiot proof and someone will make a better idiot.
Real programmers don't document. If it was hard to write, it should be hard to understand.