Hvis jeg eks. har loadet følgende XML kode ind i mit XMLDOMDocument objekt som jeg har lavet med MSXML 4.0:
<root>
<item id="itm01"/>
<item id="itm02"/>
</root>
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