[xml] schrijven via DOM

Pagina: 1
Acties:

  • Crysania
  • Registratie: September 2000
  • Laatst online: 16:45
ik heb hier code om te schrijven in een xml, maar dit doet hij niet, ik krijg de error "automation server can't create object" wat is hier fout aan?
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<html>
<head>
<title>Test</title>

<script language="JavaScript">

var xmlDoc = new ActiveXObject("Msxml2.DOMDocument.4.0");
xmlDoc.async = false;
xmlDoc.load("test.xml");
//create new element
var newElem = xmlDoc.createElement("pages");
//start from the root element
var root = xmlDoc.documentElement;
//find the first child of the root element (using collection syntax)
var firstElem=root.childNodes.item(1);
//find the first child of the first child (using property syntax)
var refElem = firstElem.firstChild;
//insert our new pages element
root.childNodes.item(1).insertBefore(newElem, refElem);
//report the content of the first child of the root element
alert(firstElem.xml);

</script>
  </head>
  <body>

  </body>
</html>

Verwijderd

Ik ben niet zo bekend met JScript, dus ik kan het mis hebben. Ook vermoed ik dat je JScript hier als ASP scripting taal gebruikt maar dat weet ik niet zeker.

Hier gaat het mis:
code:
1
var xmlDoc = new ActiveXObject("Msxml2.DOMDocument.4.0");

Ten eerste maak je hard een referentie aan naar de XML DOM versie 4.0 terwijl het kan zijn dat er een oudere versie op je server is geinstalleerd. Haal eels het ".4.0" stuk weg en kijk of het werkt.

Ten tweede zie ik dat je "new" gebruikt met AxtiveXObject, en ik weet niet of dat zo klopt. Bij VBScript is de code als volgt:
code:
1
2
Dim xmlDoc
Set xmlDoc = Server.CreateObject("Msxml2.DOMDocument.4.0")

Misschien moet je even kijken of er in jouw vorm iets mis gaat. Zoals ik al zei, ik weet weinig af van JScript als ASP taal.

HTH :)

  • Crysania
  • Registratie: September 2000
  • Laatst online: 16:45
dat "new" is iets dat bij javascript hoort, de code moet goed zijn. hij komt van msdn.microsoft.com daar heb ik hem letterlijk van gekopieerd.

als dit niet lukt, heb ik wel een ander vraagje,

hoe schrijven jullie dan dingen naar je xml files toe??
welke manier kan ik het beste gebruiken?

Verwijderd

De hier genoemde code heeft niets met ASP te maken. Het uitvoeren vd code gebeurd client-side, dus Server.CreateObject gaat niet werken.

Het volgende werkt meestal wel.
code:
1
var objDoc = new ActiveXObject("Msxml2.DOMDocument");

Je gaat er dan wel vanuit dat de client MSXML heeft geinstalleerd. Weet je dat niet zeker kun je ook met de <object> tag gaan werken, en een codebase aangeven.

Verwijderd

Op vrijdag 28 december 2001 17:39 schreef Doekman het volgende:
De hier genoemde code heeft niets met ASP te maken. Het uitvoeren vd code gebeurd client-side, dus Server.CreateObject gaat niet werken.

Het volgende werkt meestal wel.
code:
1
var objDoc = new ActiveXObject("Msxml2.DOMDocument");

Je gaat er dan wel vanuit dat de client MSXML heeft geinstalleerd. Weet je dat niet zeker kun je ook met de <object> tag gaan werken, en een codebase aangeven.
Hij heeft gelijk, maar als het bij jou niet werkt kun je ook dit proberen:
code:
1
2
3
var objDoc = new ActiveXObject("Msxml<vul niks, 3 of 4 in>.DOMDocument");
-- OF: --
var objDoc = new ActiveXObject("Microsoft.XMLDom");

Wat wel werkt ligt aan de msxml parser (lees: IE)versie. Daarom is server-sided (ASP of PHP) een veel betere oplossing!