Einzelnen Beitrag anzeigen

ryLIX

Registriert seit: 16. Nov 2008
Ort: Westoverledingen
264 Beiträge
 
RAD-Studio 2009 Pro
 
#1

XML Daten in DB importieren

  Alt 23. Jan 2009, 21:36
Hallo DPler

Ich sitze grade vor einem Problem was mir üble Kopfschmerzen bereitet.
Ich muss ca. 450.000 Zeilen XML Daten in eine DB haben.
Es sollte eine Embedded DB sein. Welche is mir im Moment wurscht (SQLite, Firebrid etc.).

Die Daten haben folgende Struktur:

XML-Code:
<ROOT>
<Node value="E31">
      <Node value="ABGB-C02" />
      <Node value="ABGZ-C01" />
      <Node value="ASC5-C01" />
      <Node value="ASC5-C06" />
      <Node value="DSC-C01" />
      <Node value="DWA3-C25" />
      <Node value="DWA4-C27" />
      <Node value="EDC3-C00" />
      <Node value="EDC3P-C25" />
      <Node value="EKM-C00" />
      <Node value="EKM-C01" />
      <Node value="EKM-C25" />
      <Node value="EML-C01" />
      <Node value="EWS-C01" />
      <Node value="EWS-C02" />
      <Node value="GM2-C25" />
      <Node value="LKM2-C25" />
      <Node value="LSM-C25" />
      <Node value="ZAE2-C03" />
      <Node value="ZAE2-C05" />
    </Node>
<--!Viele Subnodes weiter-->
</ROOT>
Wobei das nur ein SubNode ist.
Es gibt noch eine andere Variante (das ist der Aufbau der meisten Daten(~90%)):

XML-Code:
<ROOT>
<E31ASC5-C06 value="ASC5-C06">
    <FSW value="MRA_TAKTUNG">
      <PSW value="aktiv"/>
      <PSW value="nicht_aktiv"/>
    </FSW>
    <FSW value="LASTBEREICHSKENNFELD">
      <PSW value="aktiv"/>
      <PSW value="nicht_aktiv"/>
    </FSW>
    <FSW value="SCHLUPFSCHWELLENOFFSET">
      <PSW value="aktiv"/>
      <PSW value="nicht_aktiv"/>
    </FSW>
    <FSW value="GETRIEBE">
      <PSW value="automatik"/>
      <PSW value="handschaltung"/>
    </FSW>
    <FSW value="BMR_TYP">
      <PSW value="typ_1"/>
      <PSW value="typ_2"/>
      <PSW value="typ_3"/>
    </FSW>
    <FSW value="AMR_TYP">
      <PSW value="typ_1"/>
      <PSW value="typ_2"/>
      <PSW value="typ_3"/>
    </FSW>
    <FSW value="SCHLUPFBANDMODIFIKATION">
      <PSW value="nicht_aktiv"/>
      <PSW value="absenkung_0.5_km/h"/>
    </FSW>
    <FSW value="MRAGRENZ">
      <PSW value="wert_01"/>
    </FSW>
    <FSW value="KURVENLOGIK">
      <PSW value="typ_1"/>
      <PSW value="typ_2"/>
      <PSW value="typ_3"/>
    </FSW>
  </E31ASC5-C06>
<--!Viele Subnodes weiter-->
</ROOT>
Ich hatte erst versucht die Daten so zu nutzen aber das ist absolut inakzeptabel von der Geschwindigkeit her.
Man meint das die Daten aus dem Web geladen werden und nicht direkt von der Platte

Jetzt suche ich eine Möglichkeit diese Daten möglichst einfach in eine Datenbank zu bringen.
Erste versuche mit Access sind kläglich gescheitert.
Insgesamt Teilt sich die Datenmenge auf 18 Solcher Dateien auf.
Die zentrale Liste hat das zu erst gepostete Format die anderen 17 das zweite Format.
Wie kann ich nun das ganze am schnellsten in Tabellen bringen?

Mit den <Node> Elementen habe ich bisher ein Treeview gefüllt.
Das wollte ich auch gern bei behalten.
Für die Bereiche <FSW> sowie <PSW> ist jeweils eine ListBox vorgesehen.
Hier wäre es optimal wenn die ID der FSW mit dem Index in der Listbox übereinstimmt damit ich darüber die passenden <PSW> Elemente finde.

Als XML Parser habe ich ADOM (OpenXML) im einsatz.
Damit komme ich auch gut klar aber die Geschwindigkeit ist unzumutbar für Anwender.

Ich wäre dankbar wenn mir jemand etwas Hilfe bei der Umsetztung geben könnte da XML immer noch nich so ganz meins ist
Markus
Hamburflys, Scrubble-Fubble-Puff-Shake, Muffin-Purper-Gurk?
  Mit Zitat antworten Zitat