Thema: Delphi XML-Knoten löschen!

Einzelnen Beitrag anzeigen

salem01

Registriert seit: 8. Okt 2005
19 Beiträge
 
#1

XML-Knoten löschen!

  Alt 2. Nov 2005, 21:10
Hi zusammen,

ich habe ein Problem mit dem Löschen eines XML-Tag mit seinen unter Tags!.
Hier ist mal der Quellcode:-
Delphi-Quellcode:
 
function ProbandLoeschen(const probandenXML, probandID : string) : string;
var

  XMLDOMProbanden : IXMLDOMDocument;
  XMLDOMProbandNode : IXMLDOMNode;

begin

  XMLDOMProbanden := CoDOMDocument40.Create;
  XMLDOMProbanden.async := false;
  XMLDOMProbanden.loadXML(probandenXML);
    //bestimmer der ID des jeweiligen probanden
    XMLDOMProbandNode := XMLDOMProbanden.selectSingleNode ('//proband[name="'+ probandID +'"]');

    if(NOT(XMLDOMProbandNode = NIL)) then
    begin //löschen des probanden anhand seiner ermittelten ID
      XMLDOMProbanden.selectSingleNode('/probanden').removeChild(XMLDOMProbandNode);
    end;
  result := XMLDOMProbanden.xml;
end;
diese Funktion wird wie folgend in einer andere Unit aufgerufen:

Delphi-Quellcode:
      //Proband löschen (Button von der XSL-Datei)
     if(funktion = 'probandloeschen') then
      begin
      CreateFileIfNotExist(getDataPath('xml\probanden.xml'), xorKey);
      xmlString:= checkedFileToString(getDataPath('xml\probanden.xml'), xorKey);
      if xmlString = 'then
       begin
        result:= fileToString(getDataPath('error\manipulated.html'));
        exit;
       end;
      with RequestInfo.Params do
       xmlString:= ProbandLoeschen(xmlString, RequestInfo.Params.Values['probandID']);
      checkedStringToFile(xmlString, getDataPath('xml\probanden.xml'), xorKey);
      result:= CreateHTMLProbandenverwaltung(xmlString, xslString);
      exit;
     end;
Die XML-datei der Probanden sieht folgendermassen aus:

Delphi-Quellcode:
<probanden>
   <proband>
      <id>1</id>
      <name>Mustermann</name>
      <vorname>Alex</vorname>
                    .......
      <attribut typ="nc">
         <beschreibung>Name</beschreibung>
         <def_wert>Mustermann</def_wert>
      </attribut>
      <attribut typ="nc">
         <beschreibung>Vorname</beschreibung>
         <def_wert>Alex</def_wert>
      </attribut>
           ......
         </proband>
...........
</probanden>
ich kann diesen probanden-knoten aber irgendwie nicht löschen!!.
liegt es vielleicht an der Anzahl der unter-Tags?? denn ich habe eine Fuktion zum attribute löschen, die fast genauso aussieht, aber die geht!! .
kann mir vielleicht jemand weiterhelfen?.
LG.
  Mit Zitat antworten Zitat