AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein XML XML fehlende Nodes automatisiert erstellen
Thema durchsuchen
Ansicht
Themen-Optionen

XML fehlende Nodes automatisiert erstellen

Ein Thema von matashen · begonnen am 29. Sep 2016 · letzter Beitrag vom 29. Sep 2016
 
matashen

Registriert seit: 29. Jan 2007
Ort: daheim
481 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
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:43 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz