xml to sql, linq und C#
Ich habe eine xml-Datei von einem externen system, dass wie folgt aussieht.
<?xml version="1.0" encoding="UTF-8"?>
<Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/">
<Body>
<Element1>
<Element2 day="2009-10-18">
<Element3 name="Joe">
<Element4 time="1">
<Element5 amount="0" price="16.58"/>
</Element4>
</Element3>
<Element3 name="Fred">
<Element4 time="5">
<Element5 amount="0" price="15.41"/>
</Element4>
</Element3>
</Element2>
</Element1>
</Body>
</Envelope>
Muss ich glätten Sie diese und legen Sie Sie in eine sql-Tabelle, die wie folgt Aussehen wird.
day, name, time, amount, price
2009-10-18, Joe, 1, 0, 16.58
2009-10-18, Fred, 5, 0, 15.41
Was ist der beste Weg, um Lesen Sie den xml-Code und fügen Sie ihn in meine DB? Ich habe das Spiel mit linq, aber ohne viel Erfolg bisher.
- Die Antwort wird stark davon abhängen, ob oder nicht Sie müssen den code zum erstellen der Tabellenstruktur, oder legen Sie einfach die Daten in eine vorhandene Tabelle.
- Danke Robert, ich brauche zum einfügen von Daten in eine bereits vorhandene Tabelle.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dieser Artikel ist ein guter Ausgangspunkt für die Grundidee.
Extrahieren von XML-und Insert-Bulk-Daten mit LINQ to XML und LINQ to SQL
Hinzufügen von ein wenig mehr hier für diejenigen, die vielleicht daran interessiert, eine ähnliche Lösung.
Müssen Sie einfügen, die in einer SQL Server-Tabelle?? Wenn ja: welche version von SQL Server?
Sie könnte einfach nur Fetzen, die außer in SQL Server-verwenden von XQuery und fügen die Daten in eine Tabelle. Verwenden Sie so etwas wie:
und bekommen Sie eine Ausgabe etwa wie:
Natürlich könnte man verwenden, um die Daten bereitstellen, um eine
INSERT INTO dbo.MyTable().....
Aussage und damit speichern Sie Ihre Daten in eine Tabelle sofortHabe ich nützliche Open-Source-XLinq-Erweiterungen und andere Tools, die vereinfachen das Parsen von xml, das verharren der db, text serialisieren von POCO-Klassen, etc
Die komplettes Beispiel unter: