Announcement

Collapse
No announcement yet.

XML Datei lesen

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

  • XML Datei lesen

    Hallo zusammen,
    ich brauch wiedermal Hilfe. Mein Programm soll aus einer xml Datei ein einfaches Benutzerprofil laden. Zum wählen des Benutzers würde ich jetzt gerne alle nutzernamen aus der xml einlesen.
    Ich hab schon recherchiert aber nun nicht wirklich schlau geworden....

  • #2
    Du hast zum Thema XML lesen und C# nichts gefunden?
    Das kann ich nicht glauben

    http://openbook.galileocomputing.de/...010_16_001.htm
    Christian

    Comment


    • #3
      Nicht schlau geworden...

      Comment


      • #4
        Und? Was erwartest du jetzt? Einen Kurs in XML?
        Da keiner dein XML kennt, kann er kein Beispiel liefern.
        Da keiner weiss was du nicht verstanden hast, kann keiner eine Antwort geben.

        Ich würde ja mal anfangen. Üblicherweise beginnt man mit lesen des XML-Dokumentes (der Datei) -> Kapitel 16.3.1. Was ist dir daran nicht möglich?

        Dann geht man über zum lesen der Daten...

        Dann kann man ein Frage stellen wie:

        Mein XML-Dokument sieht so aus

        .....

        Ich habe bisher folgenden Code:

        ....

        Nun möchte ich alle Konten/Attribute vom Typ XYZ haben.

        Dann kann jemand konkreten Code liefern
        Christian

        Comment


        • #5
          Lesen funktioniert schon zumindest für einen node.... Ich meld mich später nochmal, wenn ich den Code hier einfügen kann....

          Comment


          • #6
            Nicht schlau geworden...
            Du hast dir ganze 5 Minuten gegeben bevor du aufgegeben hast den Inhalt der verlinkten Hilfe zu verstehen?
            Nichts für ungut aber mit der Einstellung wird es schwer irgendwas zu verstehen.

            Comment


            • #7
              Nein, das war auf was anderes bezogen...

              Comment


              • #8
                Das ist mal die XML Datei:
                Code:
                <?xml version="1.0" encoding="iso-8859-1"?>
                <userdaten>
                  <user>
                    <name>
                max mustermann
                </name>
                    <personalnummer>
                1234
                </personalnummer>
                  </user>
                  <user>
                    <name>
                maria mustermann
                </name>
                    <personalnummer>
                5678
                </personalnummer>
                  </user>
                </userdaten>
                Daraus möchte ich jetzt im ersten Schritt mal nur alle namen der user auslesen... Die Namen erscheinen dann in einer Combobox oder sowas, damit ein vorhandener Nutzer gewählt werden kann. Für den Nutzer sollen dann weitere Daten geladen werden - Einstellungen für das Programm. Bin mir nicht sicher ob eine XML Datei dafür angebracht ist, oder ob eine nur alle Nutzer definiert mit Pfaden zu weiteren XMLs, in denen dann nie Einstellungen für den Benutzer stehen...

                Comment


                • #9
                  http://openbook.galileocomputing.de/...56ccaf9707df46

                  Es bietet sich ein XPAth-Ausdruck an

                  http://openbook.galileocomputing.de/...ca0b5b01eee50f
                  weiterführende Infos:

                  http://www.w3schools.com/xpath/xpath_syntax.asp
                  Christian

                  Comment


                  • #10
                    Super, das les ich mir mal durch, danke schon mal!

                    Comment


                    • #11
                      In .Net steht dir Linq2Xml zur Verfügung das dich von der größten Komplexität entkoppelt. Zumindest jenseits von der LINQ zu verstehen.
                      Übrigens alles zwischen dem Start und End Tag gehören zum Value. Dein Name und deine Personalnummer enthalten also Zeilenumbrüche. Das wolltest du sicher nicht.

                      [Highlight=C#]XElement xml = XElement.Load("MeineLiebeXMLDatei.xml");
                      var names = from name in xml.Elements("user").Elements("name") select name.Value.Trim();

                      meineLiebeCombobox.DataSource = names;
                      [/Highlight]

                      Comment


                      • #12
                        Also an var names kann ich nicht binden, Hab es mit eine BindingList statt var versucht, dann bekomme ich aber nur "System.Linq.Enumerable+WhereSelectEnumerableItera tor`2[System.Xml.Linq.XElement,System.String]" angezeigt..

                        Comment


                        • #13
                          Ruf einfach ToList() an names auf damit du eine richtige Liste bekommst.

                          Comment


                          • #14
                            Ok, da hab ich jetzt Probleme mit der Bindung, die XML soll ja nicht in der Form selbst gelesen und aufbereitet werden. Wäre da nicht eine serialisierung der XML angebracht? So weit ich das verstanden hab kann ich eine XML so in ein DataSet serialisieren...? Dann könnte ich doch die Einstellungen für jeden Benutzer einzeln aus dem DataSet holen, oder?

                            Comment


                            • #15
                              Ja das geht. Es muß auch nicht ein Dataset sein du kannst dir auch ein richtiges Klassenkonstrukt aus der XML generieren lassen in den du das XML rein und auch wieder raus serialisieren kannst. Stichwort wäre xsd.exe.

                              Comment

                              Working...
                              X