HighDots Forums  

Problem mit XML Objekt

Javascript (German) Programmiersprache JavaScript. (de.comp.lang.javascript)


Discuss Problem mit XML Objekt in the Javascript (German) forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
Dirk Herwig
 
Posts: n/a

Default Problem mit XML Objekt - 09-20-2009 , 05:58 PM






Hallo,

ich erhalte per Ajax vom Webservice ein XML-Objekt vom Typ IXMLDOMDocument2
(ASP.NET / AJAX / IE7). Dieses XML-Objekt wird folgendermaßen gespeichert:

var objekt = new Gui.Xml();

function _LoadXmlFromWebService() {
HoleXML.HoleLayouts(_GetDataOk, _GetError, _GetTimeOut);
}
function _GetDataOk(value) {
objekt._setXmlData(value);
}


_setXmlData: function(value) {
this._xmldata = value;
}

Für die weitere Bearbeitung möchte ich eine Möglichkeit schaffen, dass alle
Änderungen wieder rückgangig gemacht werden können. Dazu habe ich ein Array
angelegt, welches immer den Stand des XML-Objekts vor der Bearbeitung
speichern soll. Ich schreibe mit Push() this._xmldata in das Array.

this._arrBack = new Array(); // Rückgängig
this._tempArr = new Object(); //Temporäres Objekt

_pushToBackArray: function() {
this._tempArr = this._xmldata;
//alert(typeof (this._xmldata)); //IXMLDOMDocument2
this._arrBack.push(this._tempArr);
}

Danach lösche ich einen Knoten aus dem this._xmldata Objekt. Das
funktioniert alles auch soweit ganz gut.

Hier das Löschen:

this._pushToBackArray();
if (index > -1) {
this._xmldata.getElementsByTagName("controls")[0].removeChild(this._xmldata.getElementsByTagName("c ontrol")[index]);
}

Jedoch stelle ich fest, dass dieser gelöschte Knoten dann auch im Array
this.arrBack fehlt. Somit ist es mir dann nicht möglich, den alten Zustand
wieder herzustellen. Ich erhalte immer den gleichen Zustand aus dem Array
wie in dem this._xmldata Objekt.

_popToBackArray: function() {
if (this._arrBack.length > 0) {
this._xmldata = this._arrBack.pop();
}
}

Wie kann ich mein Problem lösen? Ich weiß an dieser Stelle nicht mehr
weiter. Ich habe extra für Push() noch ein Objekt für die Kopie des
this._xmldata Objekts angelegt, in welchem ich dieses Objekt
zwischenspeichere (this._tempArr).

mfg

Dirk

Reply With Quote
  #2  
Old   
Dirk Herwig
 
Posts: n/a

Default Re: Problem mit XML Objekt - 09-21-2009 , 05:21 AM






Hallo,

es sieht so aus, als wenn ich nur die Refernz auf das Objekt speichere. Wie
kann ich eine Kopie eines Objekts vom Typ IXMLDOMDocument2 speichern? Ich
denke, das löst mein Problem.

Gruss

Dirk

Reply With Quote
  #3  
Old   
Martin Honnen
 
Posts: n/a

Default Re: Problem mit XML Objekt - 09-21-2009 , 06:01 AM



Dirk Herwig wrote:

Quote:
es sieht so aus, als wenn ich nur die Refernz auf das Objekt speichere.
Wie kann ich eine Kopie eines Objekts vom Typ IXMLDOMDocument2
speichern? Ich denke, das löst mein Problem.
Versuche es mit
var clonedDoc = doc.cloneNode(true);
falls das mit dem XML-Dokument nicht klappt, dann sollte zumindest
var clonedEl = doc.documentElement.cloneNode(true);
klappen.


--

Martin Honnen
http://msmvps.com/blogs/martin_honnen/

Reply With Quote
  #4  
Old   
Dirk Herwig
 
Posts: n/a

Default Re: Problem mit XML Objekt - 09-21-2009 , 08:11 AM



Hallo,

so funktioniert es super.

Quote:
var clonedDoc = doc.cloneNode(true);
Danke
Dirk

Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.4
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.