XML DOM, Fjern node med MSXML 4.0

Tags:    xml

Hvis jeg eks. har loadet følgende XML kode ind i mit XMLDOMDocument objekt som jeg har lavet med MSXML 4.0:
Fold kodeboks ind/udKode 


og ønsker at fjerne noden med id="itm02" med et funktionskald removeItemWithId("itm02"), for at tage et eksempel, hvordan skal funktionen removeItemWithId() så se du (i JScript!!) ?


- karmazilla -



2 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
Hvis jeg eks. har loadet følgende XML kode ind i mit XMLDOMDocument objekt som jeg har lavet med MSXML 4.0:
Fold kodeboks ind/udKode 


og ønsker at fjerne noden med id="itm02" med et funktionskald removeItemWithId("itm02"), for at tage et eksempel, hvordan skal funktionen removeItemWithId() så se du (i JScript!!) ?


- karmazilla -


Hvor skal koden afvikles på klienten eller på en server ?
Hvis på serveren er det så ASP eller PHP eller hvad ?
Hvorfra skal funktionen kaldes ? fra et link i et html dokument eller hvad ?

Når jeg ikke kender svarene på ovennævnte kan jeg ikke hjælpe dig med andet end lidt temp kode:

Funktionen skal opbygges efter denne opskrift:

// Først laves en instants af DOM object.
// Denne metode benyttes i Jscript på klienten

var objDoc = new ActiveXObject("msxml2.DOMDocument.4.0");
objDoc.async = false;
objDoc.resolveExternals = false;
objDoc.validateOnParse = false;
objDoc.setProperty("selectionLanguage", "XPath");

// Indlæs XML fil i DOM object.
objDoc.load("dit_doc.xml");

// funktionen removeItemWithId
function removeItemWithId(sletId)
{
// Opbyg Xpath og gem i var strXpath

var strXpath = "//item[@id='" + sletId + "']";

// Find udvalgt node og gem i var objNode

var objNode = objDoc.selectSingleNode(strXpath);

// Find node der slettes og gem i var objSletNode
var objSletNode = objNode.selectSingleNode("node der slettes");

// Slet node
objNode.removeChild(objSletNode);

}

Denne funktion er en måde at gøre det på, men i dit tilfælde vil den nok ikke virke pga. dit xml dokuments opbygning.
Da dine item noder ikke har nogle børn (child) mener jeg ikke at denne funktion er det der skal til.

men hvis du besvarer mine indledende spørgsmål er jeg ret sikker på at jeg kan finde en løsning der virker til dig.

Men som sagt så var denne funktion kun ment som et eks. ikke som en løsning, men du kan da prøve at arbejde lidt med den selv.

MVH
Claus Pryds
http://www.cws-webservice.dk



Dine kodeeksempler gav pote :)
Det var med fuldt overlæg at jeg konstruerede et zoo eksempel. Det for at gøre spørgsmålet simpelt i håb om at også at få et simpelt svar.
Jeg måtte lave lidt om på koden, så her er den reviderede opgave med svar:
test.xml:
Fold kodeboks ind/udKode 


og programfilen test.js, som i dette eksempel køres via windows scripting host:
Fold kodeboks ind/udKode 



Du ville meget gerne vide hvad og hvordan jeg skulle bruge det:
svaret er at jeg er igang med at lave en tech-træ editor til et computerspil som er ved at blive udviklet. Strukturen i træet er ikke helt færdig, men det foreløbige skoleeksempel på¨et træ ser sådan her ud:
Fold kodeboks ind/udKode 


Min hjemmeside er i øjeblikket hjemsted for denne editor..

- karmazilla -



t