Not all chemicals are bad. Without hydrogen or oxygen, for example, there would be no way to make water, a vital ingredient in beer.
Verwijderd
1
2
3
4
| if (xmlDoc.selectSingleNode("/Boeken/Boek/Titel") != Null) 'joepie, hij bestaat! strThatDarnValue = xmlDoc.selectSingleNode("/Boeken/Boek/Titel").nodeTypedValue endif |
Enjoy
Edit:
Ach, het idee was juist, de syntax bagger ... Ik zei niet voor niets "zoiets"
En natuurlijk kan het nooit een boolean opleveren, want een boolean heeft geen .nodeTypedValue attribuut
Parameters
queryString: A string specifying an XPath expression.
Return Value
An object. Returns the first node that matches the given pattern-matching operation. If no nodes match the expression, returns a null value.
[ Voor 93% gewijzigd door Verwijderd op 11-11-2005 02:58 ]
1
| If Not IsNull(xmlDoc.selectSingleNode("/Boeken/Boek/Titel").nodeTypedValue) Then |
maar dit mag niet omdat die node dus niet bestaat.
Not all chemicals are bad. Without hydrogen or oxygen, for example, there would be no way to make water, a vital ingredient in beer.
je test hier of je een eigenschap van een niet bestaande node kan opvragen, maar je moet juist testen of de node uberhaupt bestaatNutcaze schreef op vrijdag 11 november 2005 @ 00:51:
Nope werkt niet. Ik heb het dan als volgt gedaan:
code:
1If Not IsNull(xmlDoc.selectSingleNode("/Boeken/Boek/Titel").nodeTypedValue) Then
maar dit mag niet omdat die node dus niet bestaat.
Edit:
de selectSingleNode geeft afaik een boolean terug, je zou het dus ook met een simpele Not kunnen proberen ipv Not isNull
beetje in de war met een andere methode
edit:
let er wel op dat je het goede boek pakt en niet het eerste. wellicht dat het zoiets moet worden voor jouw voorbeeld (ok, ik snap dat je er in real-world met een lus doorheen gaat lopen, maar toch)
1
| If Not isNull(xmlDoc.selectSingleNode("/Boeken/Boek[2]/Titel")) Then |
[ Voor 56% gewijzigd door wizzkizz op 11-11-2005 01:11 ]
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.
1
| If Not IsNull(xmlDoc.selectSingleNode("/Boeken/Boek/Titel")) Then |
is kennelijk nog steeds geldig? Hij loopt er namelijk gewoon nog steeds in...
Edit: ook If Not zonder de IsNull() werkt niet. Hij loopt er nog steeds in.
[ Voor 17% gewijzigd door Nutcaze op 11-11-2005 01:06 ]
Not all chemicals are bad. Without hydrogen or oxygen, for example, there would be no way to make water, a vital ingredient in beer.
zie mijn edit over de return van selectSingleNode je gebruikte XPathNutcaze schreef op vrijdag 11 november 2005 @ 01:02:
Je had gelijk, ik had niet goed gelezen MAAR...hij werkt nog steeds niet.
code:
1If Not IsNull(xmlDoc.selectSingleNode("/Boeken/Boek/Titel")) Then
is kennelijk nog steeds geldig? Hij loopt er namelijk gewoon nog steeds in...
[ Voor 10% gewijzigd door wizzkizz op 11-11-2005 01:10 ]
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.
?? XPath? Anyway ik heb het goede boek te pakken want ik test namelijk maar met 1 node. Wat ik doe, de conditie blijft kennelijk True retourneren.wizzkizz schreef op vrijdag 11 november 2005 @ 01:05:
[...]
zie mijn edit over de return van selectSingleNode je gebruikte XPath
Not all chemicals are bad. Without hydrogen or oxygen, for example, there would be no way to make water, a vital ingredient in beer.
kun je dan even de relevante code neerzetten hoe je het doet?Nutcaze schreef op vrijdag 11 november 2005 @ 01:12:
[...]
?? XPath? Anyway ik heb het goede boek te pakken want ik test namelijk maar met 1 node. Wat ik doe, de conditie blijft kennelijk True retourneren.
btw, XPath is de gebruikte methode om de juiste node binnen je XML document te selecteren, wat je hier als argument aan selectSingleNode meegeeft.
[ Voor 6% gewijzigd door wizzkizz op 11-11-2005 01:16 ]
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.
1
2
3
4
5
6
| Set xmlDoc = Server.CreateObject("Microsoft.XMLDOM")
xmlDoc.load(Server.MapPath("\") & "\temp\boeken.xml")
If Not IsNull(xmlDoc.selectSingleNode("/Boeken/Boek/Titel")) Then
Response.Write("blabla")
End If
Set xmlDoc = Nothing |
Met als boeken.xml:
1
2
3
4
5
6
| <?xml version="1.0" encoding="ISO-8859-1"?> <Boeken> <Boek> <Auteur>Blabla</Auteur> </Boek> </Boeken> |
Deze code zorgt er gewoon voor dat er "blabla" wordt weggeschreven. Als ik over selectSingleNode lees retourneert deze inderdaad een Boolean maar het werkt toch niet zo kennelijk.
Oh ja en als je 'm als Boolean gaat behandelen krijg je: Object variable not set
[ Voor 20% gewijzigd door Nutcaze op 11-11-2005 01:33 ]
Not all chemicals are bad. Without hydrogen or oxygen, for example, there would be no way to make water, a vital ingredient in beer.
1
2
3
4
5
6
7
8
9
10
11
12
| Set xmlDoc = Server.CreateObject("Microsoft.XMLDOM") xmlDoc.load( "boeken.xml" ) Set Node = xmlDoc.selectSingleNode( "/Boeken/Boek/Titel" ) If ( Not Node Is Nothing ) Then Response.Write Node.nodeTypedText Else Response.Write "node not found" End If Set Node = Nothing Set xmlDoc = Nothing |
* wizzkizz kijkt op zn horloge, schrikt en jumpt in bed
[ Voor 16% gewijzigd door wizzkizz op 11-11-2005 01:43 ]
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.
Not all chemicals are bad. Without hydrogen or oxygen, for example, there would be no way to make water, a vital ingredient in beer.
1
2
3
4
5
6
7
8
9
10
11
12
| Set xmlDoc = Server.CreateObject("Microsoft.XMLDOM") xmlDoc.load( "boeken.xml" ) Set Node = xmlDoc.SelectNodes( "/Boeken/Boek/Titel" ) If node.length > 0 Then Response.Write Node.nodeTypedText Else Response.Write "node not found" End If Set Node = Nothing Set xmlDoc = Nothing |
ja, werkt vast wel, maar waarom grotere objecten aanmaken dan nodig is? kost alleen maar meer geheugenJaspertje schreef op vrijdag 11 november 2005 @ 08:30:
Een andere misschien net iets minder mooie oplossing is de volgende (maar hij werkt wel)
Visual Basic:
1 2 3 4 5 6 7 8 9 10 11 12 Set xmlDoc = Server.CreateObject("Microsoft.XMLDOM") xmlDoc.load( "boeken.xml" ) Set Node = xmlDoc.SelectNodes( "/Boeken/Boek/Titel" ) If node.length > 0 Then Response.Write Node.nodeTypedText Else Response.Write "node not found" End If Set Node = Nothing Set xmlDoc = Nothing
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.