Einzelnen Beitrag anzeigen

matashen

Registriert seit: 29. Jan 2007
Ort: daheim
471 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#1

XML fehlende Nodes automatisiert erstellen

  Alt 29. Sep 2016, 09:46
Hallo,

der Titel sagts schon,

ich soll eine bestehende Default.xml als neue Ziel.XML speichern und dabei einige Werte anpassen bzw. es fehlen Nodes die dann auch erzeugt werden müssen. Da das XML etwas größer ist wollte ich jetzt nicht jeden Knoten per Hand anlegen.

Zum auslesen verwende ich den TXPathhelper den ich hier im Forum bekommen habe, funktioniert soweit ganz gut.

Mein Problem: Wie erzeuge ich automatisch Nodes die in meiner bisherigen XML Struktur nicht existieren
Aufruf stell ich mir so vor

Delphi-Quellcode:
var neuerNode:IXmlNode;
.
.
neuerNode:=TXPathhelper.selectnode('/ersterNode/nocheiner/nasowas');
if neuerNode=Nil then neuernode:=TXPathHelper.CreateNodepath('/ersterNode/nocheiner/nasowas');
wie realisier ich sowas?

Der XPathhelper den ich benutze enthält folgenden Code
Delphi-Quellcode:
class function TXPathHelper.SelectNode(xnRoot: IXmlNode; const nodePath: WideString): IXmlNode;
    var
       intfSelect : IDomNodeSelect;
       dnResult : IDomNode;
       intfDocAccess : IXmlDocumentAccess;
       doc: TXmlDocument;
    begin

       Result := nil;

       if
          not Assigned(xnRoot)
          or not Supports(xnRoot.DOMNode, IDomNodeSelect, intfSelect)
       then
          Exit;

       dnResult := intfSelect.selectNode(nodePath);

       if Assigned(dnResult) then begin
          if Supports(xnRoot.OwnerDocument, IXmlDocumentAccess, intfDocAccess) then
             doc := intfDocAccess.DocumentObject
          else
             doc := nil;

          Result := TXmlNode.Create(dnResult, nil, doc);
       end;

    end;
Matthias
Das Leben ist eines der härtesten.
  Mit Zitat antworten Zitat