Autor Beitrag
DigitalSpring
Hält's aus hier
Beiträge: 1



BeitragVerfasst: Mo 13.11.06 15:02 
Hallo!!
Ich habe ein Problem (wie wohl alle hier, die ein Thema erstellen ;) )...

Ich bekomme eineen XML-Report und will mit diesem eine Datenbank aktualisieren. also alle noch nicht vorhandenen "Row"-Elemente in eine Tabelle schreiben.

1.Beim einlesen in ein DataSet (und anzeigen in Datagrid) werden die gleichnamigen Elemente ignoriert. Also erhalte ich zwar eine Tabelle "row", aber ohne Zeilen. Das ist doof. Habs auch mit einer xsd versucht... ohne Erfolg. Hier XML Beispielcode:

ausblenden XML-Daten
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
<?xml version="1.0" encoding="UTF-8"?>
<report time="2006-11-13 04:04">
  <matrix rowcount="2">
    <columns>
      <Name type="string">bla1</Name>
      <timeOfVisit type="datetime">timeOfVisit</timeOfVisit>
      <timeOfEvent type="datetime">timeOfEvent</timeOfEvent>
    </columns>
    <rows>
      <row>
  <Name>Blabla</Name>
  <timeOfVisit>2006-10-17 12:56</timeOfVisit>
  <timeOfEvent>2006-10-17 13:04</timeOfEvent>
      </row>
      <row>
  <Name>Blabla</Name>
  <timeOfVisit>2006-10-17 12:56</timeOfVisit>
  <timeOfEvent>2006-10-17 13:04</timeOfEvent>
      </row>
      <row>
  <Name>Blabla</Name>
  <timeOfVisit>2006-10-17 12:56</timeOfVisit>
  <timeOfEvent>2006-10-17 13:04</timeOfEvent>
      </row>
    </rows>
  </matrix>
</report>


2. Bisher kam ich noch nicht dazu mit mySQL loszulegen. Vielleicht ist mit eine einfachere Variante entgangen... wie würdet ihr aus obigem XML-Code alle "Row"-Elemente rausziehen, überprüfen ob diese in einer mySQL-Tabelle existiert und gegebenenfalls eintragen.

Spaltennamen können verschieden sein:
...FROM Reportdatentabelle
...WHERE UserName LIKE Blabla AND Visit..."
ausblenden XML-Daten
1:
2:
3:
4:
5:
<row>
  <Name>Blabla</Name>
  <timeOfVisit>2006-10-17 12:56</timeOfVisit>
  <timeOfEvent>2006-10-17 13:04</timeOfEvent>
</row>


Wäre super wenn mir jemand helfen könnte... bin noch etwas grün hinter den Coder-Ohren.

Moderiert von user profile iconUGrohne: XML-Tags hinzugefügt.
UGrohne
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: Mo 13.11.06 18:13 
Wie liest Du denn bisher die XML-Daten aus? MIt einem DataGrid hatte ich das bisher noch nicht versucht, daher musst Du mir da mal auf die Sprünge helfen.

Ich würde das Ganze per XMLDocument machen und manuell auslesen. Dort kannst Du dann in einer foreach-Schleife alle Elemente durchgehen, auch wenn sie gleich heißen. Ansonsten per NextSibling. Eventuell würde aber auch eine XPath-Anweisung funktionieren, aber damit hab ich bisher noch keine Erfahrungen gesammelt.