XML проход по всему файлу и вывод нужного в textbox - C#
Формулировка задачи:
я пытался найти то что мне нужно, но видимо я тугодум((. кучу всего перелазил и не смог понять как это применить в моей ситуации, а делать нужно.
вот xml файл:
я хочу чтобы цикл прошел все people и там где в атрибуте name стоит например "Денисович Денис Денисов" вывести в textbox значение в теге "date".
<?xml version="1.0" encoding="utf-8"?> <root> <people name="Тупиков Антон Андреевич"> <date>30.06.2016</date> </people> <people name="Денисович Денис Денисов"> <date>22.04.2015</date> </people> <people name="Иринюк Ирина Ириновна"> <date>27.08.2016</date> </people> <people name="Петров Петр Петрович"> <date>13.03.2011</date> </people> </root>
Решение задачи: «XML проход по всему файлу и вывод нужного в textbox»
textual
Листинг программы
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO; using System.Xml.Linq; namespace WindowsFormsApplication1 { public partial class Form1 : Form { XDocument persons = null; public Form1() { InitializeComponent(); this.Load += new EventHandler(Form1_Load); lstbxPersons.SelectedValueChanged += new EventHandler(lstbxPersons_SelectedValueChanged); } void lstbxPersons_SelectedValueChanged(object sender, EventArgs e) { string name = (sender as ListBox).SelectedItem.ToString(); if (string.IsNullOrWhiteSpace(name)) { return; } var query = persons.Descendants("people").Where(p => p.Attribute("name").Value == name).FirstOrDefault(); if (query != null) { txtDate.Text = query.Element("date").Value; } } void Form1_Load(object sender, EventArgs e) { persons = XDocument.Load("test.xml"); string[] names = persons.Descendants("people").Select(p => p.Attribute("name").Value).ToArray(); lstbxPersons.Items.AddRange(names); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д