Problem mit XML Objekt
Von: Dirk Herwig (dherwig1961@googlemail.com) [Profil]
Datum: 20.09.2009 23:58
Message-ID: <h968mg$ora$03$1@news.t-online.com>
Newsgroup: de.comp.lang.javascript
Datum: 20.09.2009 23:58
Message-ID: <h968mg$ora$03$1@news.t-online.com>
Newsgroup: de.comp.lang.javascript
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.getE
lementsByTagName("control")[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
[ Auf dieses Posting antworten ]Antworten
- Dirk Herwig (21.09.2009 11:21)
- Martin Honnen (21.09.2009 12:01)
- Dirk Herwig (21.09.2009 14:11)
