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);
}
}
}