Announcement

Collapse
No announcement yet.

XML Daten in SQL Server importieren

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • XML Daten in SQL Server importieren

    Hallo alle zusammen.
    Ich soll ~2000 XML Daten in Tabellen von microsoft sql 2008 r2 express importieren.
    Mir stehen microsoft sql 2008 r2 express, jdbc, nebeans und eben die xml daten (Ordner C:\XML\) zur Verfügung. Verbindung zum Server mit netbeans/java steht schon
    Das Problem ist, dass ich davon sogut wie keine Ahnung habe
    Mir wurde gesagt, dass der Kunde eigentlich nur die Postleitzahl, den Namen und eine Identifikationsnummer will. Dann hät ich nur dass Problem, wie man die XML Daten in die Datenbank bekommt, da diese Infos auf den gleichen Pfad liegen und immer vorhanden sind.

    Der Chef meint aber, dass ALLE Informationen der XML Daten in die Tabellen müssen (könnte man irgendwann evtl. mglw. brauchen)


    Die xml daten sehn in etwa so aus (die Daten sind UTF-8 codiert):

    <Bericht>
    <Daten>
    <Datum>12.11.2008 </Datum>
    <Zeit>17:12</Zeit>
    </Daten>
    <Kontaktinfos>
    <Anschrift>
    <Strasse>Müllerstraße</Strasse> (umlaute sind enthalten)
    <Hausnummer>12</Hausnummer>
    </Anschrift>
    <Telefon>
    <Vorwahl>123</Vorwahl>
    <Rufnummer>56789064</Rufnummer>
    <Rufnummer>98765443</Rufnummer>
    </Telefon>
    ...
    </Kontaktinfos>
    ..... viel mehr Daten ....
    </Berich>
    soll dann am Ende etwa so aussehn:

    Tabellen: Daten: (ohne die Punkte)
    Datum ..............Zeit
    12.11.2008 .....17:12


    Kontaktinformationen:
    Strasse ............Hausnummer .....Vorwahl ......
    Müllerstraße............12 .....



    wobei bei einigen xml Daten als Unterpuntk zu bsp. Telefon noch eine Durchwahl dazusteht
    (falls xsd schemata benötigt werden: bisher gibt es keine. die 2000 xml Daten sind zwar ähnlich aufgebaut, haben aber teilweise noch andere Unterpunkte die es bei anderen Daten garnicht erst gibt, wodurch ~500-600xsd Daten erstellt werden müssten)


    Da ich leider kaum Erfahrung mit sql (und den import von Daten) habe, hab ich leider auch keinen Anhaltpunkt, wie ich nun vorgehen soll


    Wisst ihr, welche Schritte ich dafür durchführen muss und einige tipps, wie ich das mache?

  • #2
    Wenn alle Daten aus allen XML-Dateien in die DB sollen, sind erstmal entsprechende Tabellen zu erstellen, die auch alle Daten aufnehmen können.

    Dann sollten die XML-Dateien dahingehend untersucht werden, in welchen Ausprägungen sie vorkommen.

    Dann mit einer Ausprägung beginnen, das XML einlesen, parsen und in einer Schleife - nach obigen Beispiel ist das wohl der BERICHT - alle Daten für einen Datensatz zusammen sammeln und in die DB schreiben

    Die Klassen für die XML-Bearbeitung (lesen, XPATH) bringt das Standard Java mit.

    Document doc = DocumentBuilderFactory.newInstance().newDocumentBu ilder().parse(new File( DEINE DATEI ));.....

    Das Herstellen einer JDBC-Verbindung zu einer DB

    http://www.torsten-horn.de/techdocs/java-sql.htm

    Sicherlich wirst du das Programm dann je nach Ausprägung der XML-Dateien anpassen müssen.

    Ein anderer Weg ist die Nutzung von JAXB. Hier wird ein Klassenmodell vorausgesetzt, in das die XML-Daten dann eingelesen werden. Wenn du dir zutraust das aufzubauen ist das einlesen und auswerten einfach. Auch dieses Klassenmodell muss allerdings den Ausprägungen der XML-Dateien angepasst werden.

    Nächste Alternative ist, die XML-Dateien direkt in den Server zu importieren - sofern möglich. Das hat dann allerdings nix mit Java zu tun. Ggf. ist dein Beitrag dann in das entsprechende DB-Forum hier zu verschieben
    Zuletzt editiert von Christian Marquardt; 10.07.2011, 19:49. Reason: Rechtschreibung
    Christian

    Comment


    • #3
      Ok vielen danke erstmal soweit
      werd mich dann morgen erstmal daran setzen die xml genau zu durchsuchen für die tabellen und sie mit einem parser einzulesen (eieiei wird dasn spaß^^)
      werde mich auch hier bischen weiter umsehen, vielleicht gibts ja noch ähnliche threads hier die mich ebenfalls weiterbringen

      falls dann noch Probleme auftreten meld ich mich wieder^^

      Comment

      Working...
      X