Struktur einer Labview-XML Datei zur Laufzeit bestimmen - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +--- Thema: Struktur einer Labview-XML Datei zur Laufzeit bestimmen (/Thread-Struktur-einer-Labview-XML-Datei-zur-Laufzeit-bestimmen) |
Struktur einer Labview-XML Datei zur Laufzeit bestimmen - Aleph1 - 03.08.2012 15:58 hallo zusammen, ich speichere zu Dokumentationszwecken ein paar Daten in eine *.Xml-Datei mittel der Standard-Labview-Routinen. Es stellte sich allerdings heraus, dass der Datentyp der *xml-Datei mit der Zeit angepasst (erweitert) werden muss. Man berücksichtigt halt nie alles im Vorfeld. Jetzt das Problem: Wenn ich eine ältere XML-Version mit der Routine die für die neuere Version geschrieben wurde zu öffnen, bekomme ich eine Fehlermeldung, da die XML-Typen nicht übereinstimmen. Is ja logisch. (Hab ich das jetzt verständlich erklärt?) Und die Frage: Ist es irgendwie möglich, die Typstruktur der jeweiligen XML-Datei zur Laufzeit zu bestimmen? Dann könnte ich über eine Case-Struktur die unterschiedlichen Datentyp-Versionen auswählen und über die entsprechend passende Routine die Datei trotzdem einlesen. Bin wie immer dankbar für jede Hilfe. Gruß Karl RE: Struktur einer Labview-XML Datei zur Laufzeit bestimmen - jg - 03.08.2012 16:27 2 Ideen: 1) Bei Fehler per XML-Lesen-VI einfach die nächste Struktur ausprobieren. 2) File vorher als ASCII-File einlesen und nach entsprechenden Tags durchsuchen. Gruß, Jens RE: Struktur einer Labview-XML Datei zur Laufzeit bestimmen - Aleph1 - 04.08.2012 14:51 Hi Jens, ich glaub die Idee mit dem ASCII-File und den Tags gefällt mir. Dann müsst ich nur noch einen Versionseintrag in jede XML-Datei schreiben und danach die Struktur auswählen. Ja, so mach ich's. Dank Dir! Gruß Karl RE: Struktur einer Labview-XML Datei zur Laufzeit bestimmen - Aleph1 - 13.08.2012 14:34 Hallo zusammen, jetzt muss ich leider das Thema doch noch mal aufkochen. Das XML file als ASCII einlesen und dann nach einer Art Versionsnummer suchen klappt hervorragend, allerdings tritt nun folgendes Problem auf: Ich packe die XML-Einträge in einen Cluster, den ich über als "strict type def." erstellt habe, um Änderungen der Clusterstruktur global im Programm abzufangen. Die Daten des Clusters werden im ganzen Programm benötigt. Wenn ich jetzt unterschiedliche XML-Versionen einlesen möchte brauch ich auch die entsprechenden Clusterstrukturen. Und das überall im Programm. Wenn man die Struktur einer "strict type def." zur Laufzeit ändern könnte, wäre der obige Ansatz klasse, so aber wird der Programmcode vollkommen konfus. Hat jemand noch eine Idee wie man so eine Abfangroutine für unterschiedliche XML-Dateiversionen designen kann? Dankbar für jede Hilfe. Gruß Karl RE: Struktur einer Labview-XML Datei zur Laufzeit bestimmen - GerdW - 13.08.2012 15:34 Hallo Karl, deine XML-Leseroutine muss nur Daten mit dem TypeDef-Cluster nach außen hin bereitstellen. Intern kannst du aber mit beliebigen Clustern arbeiten (für jede XML-Version einen anderen)! Du musst dann nur die Werte vom gelesenen XML-Cluster in den typdefinierten Cluster umkopieren, d.h. die jeweils passenden Einträge bereitstellen. P.S.: Eine einfache Typedefinition hätte vielleicht auch ausgereicht. Mit "strict" legst du aber auch das komplette Aussehen des Clusters fest, was manchmal gewünscht sein kann, aber an anderer Stelle Einschränkungen bewirkt... |