Autor Beitrag
Mr.y
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 36



BeitragVerfasst: Mi 23.06.10 09:41 
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:
ausblenden 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 user profile iconChristian S.: XML-Tags hinzugefügt


Zuletzt bearbeitet von Mr.y am Mi 23.06.10 10:41, insgesamt 1-mal bearbeitet
danielf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1012
Erhaltene Danke: 24

Windows XP
C#, Visual Studio
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 36



BeitragVerfasst: 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

ausblenden 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 user profile iconChristian S.: XML-Tags hinzugefügt
danielf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1012
Erhaltene Danke: 24

Windows XP
C#, Visual Studio
BeitragVerfasst: 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ß

Für diesen Beitrag haben gedankt: Mr.y
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: 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.

Für diesen Beitrag haben gedankt: Mr.y
Mr.y Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 36



BeitragVerfasst: Mi 23.06.10 13:42 
user profile icondanielf hat folgendes geschrieben Zum zitierten Posting springen:
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.

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
 for (int i = 0; i <= mDaten.Tables["USER"].Columns.Count-1; i++)
     {
           // spalte.Text = spalte.Text + mDaten.Tables["USER"].Rows[0].ItemArray[i].ToString();
           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 user profile iconChristian S.: C#-Tags hinzugefügt
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Mi 23.06.10 15:40 
user profile iconMr.y hat folgendes geschrieben Zum zitierten Posting springen:
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.

user profile iconMr.y hat folgendes geschrieben Zum zitierten Posting springen:
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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 36



BeitragVerfasst: Do 24.06.10 07:44 
Ok, werde ich Zukunft beachten