Wczytywanie xmla

Odpowiedz Nowy wątek
2015-01-13 18:04
Michalekczek
0

Witam. Mam problem ze zrobieniem buttona który wczyta mi xmla i przekaże mi go do listboxa.

mój xml wygląda tak :

<?xml version="1.0" encoding="utf-8"?>
<Informacje xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Imie>Michal</Imie>
  <Nazwisko>Kowalski</Nazwisko>
  <Grupa>BUD301</Grupa>
  <Index>7777</Index>
</Informacje>

Męczę sie z tym juz parych ładne godzin i nie moge tego ogarnąć czytałem juz chyba wyszstko ale widocznie jestem debilem ;/ . Móglbym ktos pomóc?

private void button2_Click(object sender, EventArgs e)
        {
            XmlReader reader = XmlReader.Create("C:\\Users\\Michal\\Desktop\\Moj program\\MojProgram\\MojProgram\\bin\\Debug\\data.xml");
            while (reader.Read())
                if ((reader.NodeType == XmlNodeType.Element) && (reader.Name == "Informacje"))
                {
                    if (reader.HasAttributes)
                    {
                        {
                            listBox1.Items.Add(reader.GetAttribute("Data1") + reader.GetAttribute("Data2"));
                        }

                    }
                }

        }

Tyle udało mi sie zklecić móglby ktos poprawic tak żeby to działało? żeby mi po prostu wyswietlalo w listboxie obok siebie te dane czyli imie , naziwsko, grupa , index.
Z gory uprzejmię dziękuje , z poważaniem Michał.

Pozostało 580 znaków

2015-01-13 18:07
Michalekczek
0

Dobra poprawka w moim kodzie to tak powinno wygladac.

listBox1.Items.Add(reader.GetAttribute("Imie") + reader.GetAttribute("Nazwisko"));

Pozostało 580 znaków

2015-01-13 18:22
0

Zamiast tego

XmlReader.Create("C:\\Users\\Michal\\Desktop\\Moj program\\MojProgram\\MojProgram\\bin\\Debug\\data.xml");

mógłbyś dać po prostu XmlReader.Create("data.xml");


Czyli już działa wszystko?

Pozostało 580 znaków

2015-01-13 18:26
Michalekczek
0
dam1an napisał(a):

Zamiast tego

XmlReader.Create("C:\\Users\\Michal\\Desktop\\Moj program\\MojProgram\\MojProgram\\bin\\Debug\\data.xml");

mógłbyś dać po prostu XmlReader.Create("data.xml");


Czyli już działa wszystko?

Niestety , ale duzo to nie zmienilo .

jak chce wczytac w listobxa to jest takie cos 973381b150.png

czyli niby cos sie dodaje puste jakby.

Pozostało 580 znaków

2015-01-13 18:40
0

Ponieważ próbujesz pobrać atrybuty a to są elementy.
Nie wiem jak używać XmlReadera ale mogę pokazać jak to zrobić w LINQ to XML.

XElement xel = XElement.Load("data.xml");
listBox1.Items.Add(xel.Element("Imie") + xel.Element("Nazwisko"));

Jeśli ten xml będzie wyglądał tak jak wyżej, bo jeśli będzie więcej elementów Informacje to należało by to zrobić inaczej.

edytowany 1x, ostatnio: dam1an, 2015-01-13 18:41

Pozostało 580 znaków

2015-01-13 18:56
Michalekczek
0

jak zrobie tak to niby przechodzi dfcfc906b1.png

ale jezeli zrobie tak : 81d15f8d70.png

A po przejsciu jak na 1 screenie to wyglada tak ;/ ff912e700d.png

Pozostało 580 znaków

2015-01-13 19:17
0

Sorry, bo ty chcesz chyba coś takiego zrobić:

xel.Elements().ToList().ForEach(e => listBox1.Items.Add(e.Value));

A wcześniej nie działało bo myślałem że ty chcesz wyświetlić w ListItem słowo MichałKowalski, a to by trzeba było zrobić ToString na tym obiekcie.

edytowany 2x, ostatnio: dam1an, 2015-01-13 19:21

Pozostało 580 znaków

2015-01-14 07:16
0

może tak :)

StreamReader r = new StreamReader("dane.xml");
XmlSerializer serializer = new XmlSerializer(typeof(osoba));
osoba p = (osoba)serializer.Deserialize(r);

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0