AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Die Delphi-IDE Benutzerdefinierte Compiler-Warnungen
Thema durchsuchen
Ansicht
Themen-Optionen

Benutzerdefinierte Compiler-Warnungen

Ein Thema von Scurra · begonnen am 30. Jul 2015 · letzter Beitrag vom 6. Aug 2015
 
alda

Registriert seit: 24. Mär 2014
Ort: Karlsruhe
93 Beiträge
 
Delphi XE6 Architect
 
#16

AW: Benutzerdefinierte Compiler-Warnungen

  Alt 4. Aug 2015, 17:41
@alda: Danke für die kurze Einführung. Es hat noch etwas gedauert, bis ich verstanden habe, in welcher Weise man die Such-Anweisungen in den Delphi-Code einbinden muss. Sind die Anfragen mit XPath denn im Allgemeinen schneller als mit (den meisten) anderen Xml-Parsern wie z. B. TXmlDocument?
Zur tatsächlichen Geschwindigkeit kann ich nichts sagen, da ich das bisher nie evaluieren musste (bisher gab es keine Notwendigkeit dafür). Ich persönlich verwende dafür auch immer die Winapi.Msxml Implementierung. Das müsstest Du dann für deinen Anwendungsfall evaluieren bzw einfach mal debuggen, wo bei NativeXML ide Zeit verloren geht und warum.

Ich gehe mal davon aus, dass es eine rethorische Frage ist, denn so sieht dein Code natürlich schneller aus. Allerdings ist dein Code weniger allgemein. Wenn man nun ein anderes xml-Dokument hätte, dann müsste/sollte man andere Klassen bauen.
Logisch, wenn sich das korrespondierende XML ändert, muss sich natürlich auch die Zugriffsklasse ändern.

Ich würde es folgendermaßen aufbauen:

Delphi-Quellcode:
TXmlNode = class
private
  FText: string;
  FAttributes: TDictionary<string, string>;
  FChildNodes: TList<TXmlNode>;
  ...
end;

TXmlDoc = class
private
  FRoot: TXmlNode
public
  LoadFromFile(aFileName: string);
  SaveToFile(aFileName: string);
end;
Man müsste dann eben noch Properties zu den Feldern ergänzen und Methoden zum Durchsuchen anbieten. Der Code soll jetzt ja auch nur meine Idee darstellen. In LoadFromFile müsste dann der Wurzel-Knoten inkl. aller Childnodes etc. eingelesen werden. Wenn man es sich ganz einfach machen möchte, verwendet man hier einfach einen bereits vorhandenen Parser (wie z. B. NativeXml, TXmlDocument o. ä.) und liest dann lediglich alle Daten in "meine" Struktur ein.
Diese Ansatz wäre allerdings wieder allgemein und "untypisiert" (das macht ja schon jede XML-Lib so oder ähnlich). Das Beispiel von Sir Rufo ist typisiert auf die von dir verwendete XML-Struktur und ermöglicht dir einen objektorientierten Umgang mit den Daten in Form von Klassen und Objekten - man sieht also von Außen z.B. garnicht, dass diese Daten am Ende in einem XML landen. Vielleicht übersehe ich aber auch nur etwas in deinem Beispiel
  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 19:22 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-2025 by Thomas Breitkreuz