C# XML Pobranie danych z węzła zawierającego konkretną informacje

0

Mam plik XML który przechowuje imię, nazwisko, adres.

<?xml version="1.0" encoding="UTF-8" ?>
<osoby>
		<osoba>
			<imie>Jan</imie>
                        <nazwisko>Kowalski</nazwisko>
                        <adres>Randomowa 22</adres>
		</osoba>

		<osoba>
			<imie>Tomasz</imie>
                        <nazwisko>Krupiński</nazwisko>
                        <adres>Randomowa 24</adres>
		</osoba>
</osoby>

I teraz jak w kodzie C# przeszukać cały plik XML w celu znalezienia np. Jana i żeby wszystkie pozostałe informacje w tym węźle gdzie jest Jan zostały przesłane do zmiennej.

            if ((sender as ListView).FocusedItem.Text == "Jan")
            {
                using (XmlTextReader reader = new XmlTextReader(@"C:\Project\data.xml))
                {
                    while (reader.Read())
                    {
                        if (reader.NodeType == XmlNodeType.Element)
                        {
                            MessageBox.Show("Searched");
                            break;
                        }
                    }
                }
            }
1

Użyć LINQ TO XML

using System.Linq.Xml;

kod programu

string xmld = "<?xml version='1.0' encoding='UTF-8'?><osoby><osoba><imie>Jan</imie><nazwisko>Kowalski</nazwisko><adres>Randomowa 22</adres></osoba><osoba><imie>Tomasz</imie><nazwisko>Krupiński</nazwisko><adres>Randomowa 24</adres></osoba></osoby>";
            
            XDocument doc = XDocument.Parse(xmld);
            var result = (from person in doc.Element("osoby").Elements("osoba")
                         where person.Element("imie").Value == "Jan"
                         select person).SingleOrDefault();

            Console.WriteLine(result.Element("nazwisko").Value);

0

Dziękuję za pomoc, tam zamiast tego stringa z "<?xml version='1.0' encoding='UTF-8'?><osoby><osoba><imie>Jan</imie><nazwisko>Kowalski</nazwisko><adres>Randomowa 22</adres></osoba><osoba><imie>Tomasz</imie><nazwisko>Krupiński</nazwisko><adres>Randomowa 24</adres></osoba></osoby>", to użyłem ReadAllText.

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