XML проход по всему файлу и вывод нужного в textbox - C#

Узнай цену своей работы

Формулировка задачи:

я пытался найти то что мне нужно, но видимо я тугодум((. кучу всего перелазил и не смог понять как это применить в моей ситуации, а делать нужно. вот xml файл:
<?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>
я хочу чтобы цикл прошел все people и там где в атрибуте name стоит например "Денисович Денис Денисов" вывести в textbox значение в теге "date".

Решение задачи: «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);
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.75 из 5
Похожие ответы