Entwickler-Ecke
IO, XML und Registry - xml inhalt mit Attributen ins Dataset einlesen
Mr.y - Mi 23.06.10 09:41
Titel: xml inhalt mit Attributen ins Dataset einlesen
Hallo,
ich habe ein einfaches xml-dokument mit hilfe von Dataset.XmlRead eingelesen und im GridView angezeigt.
nun habe ich ein XML Dokument mit Attributen
und das geht dann nicht mehr so...
Meine XML:
XML-Daten
1: 2: 3: 4: 5: 6: 7: 8: 9:
| <?xml version="1.0" encoding="iso-8859-1" ?> <BenutzerDaten xmlns:xsd="http://www.w3.org/2001/XMLSchema-instance" xsd:noNamespaceSchemaLocation="Definition.xsd"> <User ID="1"> <localeIP>172.xx.xx.x</localeIP> <Benutzer>Mr.x</Benutzer> <Adresse>Hausen</Adresse> <Sammlung>mp3</Sammlung> </User> </BenutzerDaten> |
Ich habe was mit der Klasse XmlTextReader gelesen, aber würde ungern jetzt mit ne neuen Klasse arbeiten
oder kann man diesen XmlTextReader ins DataSet packen???
Weiss jemand wie ich xml mit attributen richtig im GridView anzeigen kann??
danke schon mal :)
Moderiert von
Christian S.: XML-Tags hinzugefügt
danielf - Mi 23.06.10 10:04
Hallo,
wie hast du es den eingelesen? Wenn ich ein DataSet erzeuge und dann ein Xml einlese dann bekomme ich die Attribute als separate Spalte, so wie du es wahrscheinlich haben willst.
Ich würde eine Table mit dem Namen BenutzerDaten und User erwarten. Wobei die Tabelle User 6 Spalten hat. ID, localeIP, Benutzer, Adresse und Sammlung.. sowie um die Xml-Hierarchie abbilden zu können eine UserID Spalte.
Zitat: |
nun habe ich ein XML Dokument mit Attributen
und das geht dann nicht mehr so... |
Was bedeutet das?
Gruß
Mr.y - Mi 23.06.10 10:49
danke für deine schnelle Antwort:)
Wenn ich ein DataSet erzeuge und dann ein Xml einlese dann bekomme ich die Attribute
Also ich bekomme die Attribute nicht als seperate spalte, ich bekomme gar nix angezeigt wenn ich:
dataGridView.DataSource = mDaten.Tables[0]; das mache...
Also ich hab ja User ID 1; User ID 2
XML-Daten
1: 2: 3: 4: 5: 6:
| <User ID="1"> <localeIP>172.xx.xx.x</localeIP> <Benutzer>Mr.x</Benutzer> <Adresse>Hausen</Adresse> <Sammlung>mp3</Sammlung> </User> |
Und stelle mir das so vor:
User ID 1
Spalten:
localeIP | Benutzer | Adresse | Sammlung
Nun wenn ich Spalte: "Benutzer" eingebe....kommt ne exception, dass die Spalte nicht NULL sein darf..also leer
Ist ja auch kein Wunder, denn hier spielt noch der Attribut: ID1 bzw ID2 ne Rolle
Ich vermute ich hab da ein Durcheinander...:(
Moderiert von
Christian S.: XML-Tags hinzugefügt
danielf - Mi 23.06.10 11:05
Das liegt an der Tabelle die du aussuchst... schon Mal gedeugged ?
Tabelle 0 entspricht der Tabelle BenutzerDaten und hat keine Spalte.
Nimm die User Tabelle, dann klappt es ;)
Gruß
Ralf Jansen - Mi 23.06.10 11:14
Zitat: |
Weiss jemand wie ich xml mit attributen richtig im GridView anzeigen kann?? |
Da du ein Schema zu deinem XML hast scheint das Format ja fix zu sein. Ich würde dann hingehen und mir mit der xsd.exe (gehört zum Framework) ein passendes Klassenmodel erzeugen lassen(oder wenn dir das lieber ist ein Dataset). Das ist dann streng typisiert und du kannst dir den erzeugten Sourcecode ansehen um raus zubekommen wo deine Daten den letztendlich stecken.
Mr.y - Mi 23.06.10 13:42
danielf hat folgendes geschrieben : |
Das liegt an der Tabelle die du aussuchst... schon Mal gedeugged ?
Tabelle 0 entspricht der Tabelle BenutzerDaten und hat keine Spalte.
Nimm die User Tabelle, dann klappt es ;)
Gruß |
cool, danke hat geklappt.
habe noch zwei Fragen:
1.
C#-Quelltext
1: 2: 3: 4: 5:
| for (int i = 0; i <= mDaten.Tables["USER"].Columns.Count-1; i++) { dataGridView.DataSource = mDaten.Tables["USER"].Rows[0].ItemArray[i].ToString(); } |
Warum kann ich im Grid nicht auf die selbe art und weise nen Datensatz ausgeben, wie in ner Textbox??
und wie kann ich dann in nem Grid ne bestimmte Zelle oder bestimmten Datensatz ausgeben??
2.Frage
spalten, loclaeIP, Benutzer, Adresse und Sammlung sind UNTERKNOTEN VON USER
Das heisst: User=Tabelle; UNTERKNOTEN0=Spalten??
Nach diesem Prinzip geht das doch oder??
Dann müsste ja mal:
USER--diesmal UNTERKNOTEN ==> also ne Spalte UND Benutzerdaten ist jetzt ne Tabelle??
Das heisst: Tabelle Benutzerdaten hat ne Spalte User??
Moderiert von
Christian S.: C#-Tags hinzugefügt
JüTho - Mi 23.06.10 15:40
Mr.y hat folgendes geschrieben : |
habe noch zwei Fragen:
1. zum DataGridView |
Das hat nichts mit der bisherigen Überschrift und dem Unterforum IO, XML zu tun. Also: Neue Frage im richtigen Unterforum.
Mr.y hat folgendes geschrieben : |
2.Frage
spalten, loclaeIP, Benutzer, Adresse und Sammlung sind UNTERKNOTEN VON USER
Das heisst: User=Tabelle; UNTERKNOTEN0=Spalten??
Nach diesem Prinzip geht das doch oder??
Dann müsste ja mal:
USER--diesmal UNTERKNOTEN ==> also ne Spalte UND Benutzerdaten ist jetzt ne Tabelle??
Das heisst: Tabelle Benutzerdaten hat ne Spalte User?? |
Bei gutem Willen gehört das noch zur Ausgangsfrage.
Grundsätzlich sind DataTable und XML ziemlich unterschiedliche Strukturen. Es hängt vom Xml-Aufbau ab, ob ein Knoten mit einer Tabelle, dessen Unterknoten mit einer Zeile und deren Unterknoten mit den Spalten zu vergleichen sind oder ob der Aufbau nicht kompatibel ist.
Gruß Jürgen
Mr.y - Do 24.06.10 07:44
Ok, werde ich Zukunft beachten
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 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!