Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   Delphi XML-Daten effizient prüfen? (https://www.delphipraxis.net/128479-xml-daten-effizient-pruefen.html)

romber 30. Jan 2009 14:33


XML-Daten effizient prüfen?
 
Hallo!

Der Titel ist vielleicht nich ganz eindeutig, aber mir ist nichts besseres aufgefallen.
Ich habe eine neue Klasse erstellt mit mehreren Eingenschaften. Dann habe ich noch einen TCP-Client, der mir permanent die XML-Daten liefert. Bei diesen XML-Daten handelt es sich genau um diese Eigenschaften, die ich jedesmal einer zuvor erstellten Instanz meiner Klasse zuweise.

Folgendes Problem: Fast alle Eigenschaften sind optional, die Werte müssen nicht unbedingt zugewiesen werden. Die XML-Daten, die ich empfange, liefern in der Regel die Werte auch nicht für alle Eigenschaften. Kann ich die einzelnen XML-Nodes irgendwie eindeutig kennzeichen, so dass ich beim bearbeiten der Daten einfach prüfen kann, welche Eigeschaften die XML-Datei geliefert hat?
Zurzeit laufe ich einer Schleife alle XMLNodes durch, prüfe den Namen usw. Ich bin mir irgendwie sicher, dass es eine elegantere Methode dafür gibt.

Ich arbeite mit IXMLDocument und IXMLNodes (units XMLIntf, XMLDoc).

_BlackDragon_ 12. Mär 2009 15:58

Re: XML-Daten effizient prüfen?
 
Hi,

so wie ich das verstehe, ist die Struktur deines XML-Dokumentes nicht eindeutig definiert, was es natürlich schwierig (unmöglich) macht, sich daran zu orientieren und dagegen zu validieren.
Falls es in deiner Hand liegt, das Dokument zu erstellen, dann erstelle doch ein DTD.

Damit besitzt dein Dokument eine feste Struktur und du weißt wo du was findest. Damit kannst du gezielt einzelne Knoten ansprechen und evtl. "nur" diese durch eine Schleife laufen lassen.

Wenn du allerdings keine Möglichkeit hast die Struktur der gesendeten Daten zu ändern, wirst du weiterhin
alles durchlaufen müssen.

Gruss

BlackDragon


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:10 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz