Einzelnen Beitrag anzeigen

Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#66

Re: himXML (gesprochen himixML)

  Alt 3. Jun 2009, 20:38
Also Compilierung unter TDE2006 problemlos (aller 3 Units).

Nach Search&Replace von .Data -> .Text lief alles sofort. Hab' dann auch die meisten tieferen Methoden durch Aliase ersetzt (dank Übersetzungstabelle).

Das Interface hab' ich noch nicht getestet (bin auch eben am Create gescheitert, als D5-ler muss ich da nochmal kurz drüber nachdenken)

Da ich himXML aktuell "nur" als INIFile-Ersatz verwende, sind meine Test's vielleicht auch nur etwas oberflächlich. Werde am Wochenende mein Übungsprojekt mal stark erweitern, um die mehr Umfang von himXML zu testen (bis dahin bekomme ich das auch mit dem Interface hin).

***

Ich versuche gerade raus zu finden, wie ich elegant ermittel, ob ein Node schon existiert. Dabei ist wichtig, das ich weis, ob der Node vorher schon existierte, da ich einen neuen Node mit einem Default-Wert füllen will.

Das gibt immer einen gültigen Node, weil er gleich angelegt wird
Delphi-Quellcode:
aNode := XML.RootNode.Nodes['Section_1\Value_1'];
// aNode nur NIL, wenn Pfad falsche Zeichen enthält
Das geht nicht
Delphi-Quellcode:
if XML.RootNode.Nodes.IndexOf('Section_1\Value_1') < 0
// Gibt immer -1, da Pfad nicht ausgewertet wird?
Das ist mein aktueller Weg
Delphi-Quellcode:
if XML.RootNode.Nodes['Section_1'].Nodes.IndexOf('Value_1') < 0
// -1 Node existiert nicht, >= 0 wenn Node existiert
(kann ich später Recursiv und mit Explode auf den Pfad eleganter gestalten)

Ja, ich sehe manchmal den Wald vor lauter Bäumen nicht... gibt es eine bessere Variante, einen SubNode auf Existenz zu prüfen?

PS: Falls ich doch richtig liege und es derzeit keine andere Möglichkeit gibt (in der Tools-Unit auch so gelöst)... ein XMLFile.NodeExists('Pfad') wäre auch OK
  Mit Zitat antworten Zitat