Entwickler-Ecke
IO, XML und Registry - XML convertieren
storck - Mi 07.01.09 09:25
Titel: XML convertieren
Hallo zusammen!
Ich arbeite gerade an folgender Problemstellung: es liegt eine Datenbank im XML Format vor und diese muss in ein anderes XML Format (also eine andere Struktur) umgewandelt werden. Bin momentan aber noch unschlüssig, welcher der eleganteste Weg ist. Ein XSD File des Zielformats wäre vorhanden.
danke schon mal im voraus!
lg, storck
JüTho - Mi 07.01.09 11:19
Hallo,
DataSet1.ReadXml, Daten kopieren in die andere Struktur, DataSet2.WriteXml. Da es sich um unterschiedliche Strukturen handelt (wie Du schreibst), geht es vermutlich nicht anders, als die Daten einzeln zu kopieren, etwa so:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7:
| foreach(DataRow row in OldTable.Rows) { DataRow newRow = NewTable.NewRow(); newRow.BeginEdit(); newRow["Feld0"] = row["Feld17"]; newRow.EndEdit(); NewTable.Rows.Add(newRow); } |
Vorher muss vermutlich noch (manuell) ein xsd-Schema für DataSet1 erstellt werden.
Die
Namen von Tabellen und Feldern können auch direkt geändert werden: Einlesen, Namen von DataTable und DataColumn ändern, speichern.
Für mehr Hilfe bräuchte ich mehr Informationen über die Art und den Umfang der Änderungen.
Gruß Jürgen
storck - Mi 07.01.09 11:40
JüTho hat folgendes geschrieben : |
Hallo,
DataSet1.ReadXml, Daten kopieren in die andere Struktur, DataSet2.WriteXml. Da es sich um unterschiedliche Strukturen handelt (wie Du schreibst), geht es vermutlich nicht anders, als die Daten einzeln zu kopieren, etwa so:
C#-Quelltext 1: 2: 3: 4: 5: 6: 7:
| foreach(DataRow row in OldTable.Rows) { DataRow newRow = NewTable.NewRow(); newRow.BeginEdit(); newRow["Feld0"] = row["Feld17"]; newRow.EndEdit(); NewTable.Rows.Add(newRow); } |
Vorher muss vermutlich noch (manuell) ein xsd-Schema für DataSet1 erstellt werden.
Die Namen von Tabellen und Feldern können auch direkt geändert werden: Einlesen, Namen von DataTable und DataColumn ändern, speichern.
Für mehr Hilfe bräuchte ich mehr Informationen über die Art und den Umfang der Änderungen.
Gruß Jürgen |
Vielen Dank für die schnelle Antwort!
Es ist also tatsächlich so, dass mir das vorhandene XSD-File vom Zielformat nichts bringt? Denn die Änderungen sind schon sehr wesentlich und umfangreich (CANdb soll in FIBEX umgewandelt werden, falls dir das was sagt).
lg, storck
JüTho - Mi 07.01.09 12:01
storck hat folgendes geschrieben : |
| Es ist also tatsächlich so, dass mir das vorhandene XSD-File vom Zielformat nichts bringt? |
Eindeutig nichts. Zum Quell- und Ziel-DataSet wird jeweils ein
eigenes xsd-Schema benötigt.
storck hat folgendes geschrieben : |
| Denn die Änderungen sind schon sehr wesentlich und umfangreich (CANdb soll in FIBEX umgewandelt werden, falls dir das was sagt). |
Nein, sagt mir gar nichts. Ich habe grade mal auf Wikipedia nachgelesen. Vielleicht gibt es bei den Links unter
CAN-Bus [
http://de.wikipedia.org/wiki/Controller_Area_Network] etwas Hilfe.
Gruß Jürgen
storck - Mi 07.01.09 12:20
JüTho hat folgendes geschrieben : |
Eindeutig nichts. Zum Quell- und Ziel-DataSet wird jeweils ein eigenes xsd-Schema benötigt.
|
Hab jetzt den Tipp bekommen, dass ich für jeden Table meines XSD einen eigenen Datentyp erstellen, von diesem Typ eine Variable erstellen, befüllen und an einen XMLWriter übergeben kann. Somit bräuchte ich dann nur die jeweiligen Daten aus der Quelldatei suchen.
Weißt du was ich meine bzw. gibts Erfahrungen damit?
lg, storck
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!