Структура XML-файла:
<?xml version="1.0" encoding="UTF-8" ?>
<employees>
<employee>
<fio>Карпов</fio>
<date>10.09.1978</date>
<home>11 А Победа</home>
<phone>87509708898</phone>
</employee>
<list_work>
<work>
<name>ЖЭК</name>
<date_start>10.09.2001</date_start>
<date_end>10.09.2004</date_end>
</work>
<work>
<name>Маркетинг</name>
<date_start>11.04.2005</date_start>
<date_end>10.12.2011</date_end>
</work>
</list_work>
<list_pay>
<pay>
<year>2004</year>
<month>09</month>
<salary>75000</salary>
</pay>
<pay>
<year>2007</year>
<month>07</month>
<salary>250000</salary>
</pay>
</list_pay>
<employee>
<fio>Глухарь</fio>
<date>02.12.1981</date>
<home>12 Б Минусинская</home>
<phone>87509708881</phone>
<list_work>
<work>
<name>Рекламный агент</name>
<date_start>10.03.2011</date_start>
<date_end>05.09.2014</date_end>
</work>
<work>
<name>F1</name>
<date_start>11.04.2016</date_start>
<date_end>08.10.2018</date_end>
</work>
</list_work>
<list_pay>
<pay>
<year>2012</year>
<month>06</month>
<salary>56000</salary>
</pay>
<pay>
<year>2015</year>
<month>12</month>
<salary>550000</salary>
</pay>
</list_pay>
</employee>
</employees>
Мне нужно выбрать фамилию, адрес и название работы и загрузить эту информацию в listView.
xDoc = XDocument.Load("worker.xml");
IEnumerable<XElement> workers = xDoc.Elements();
foreach (XElement worker in workers.Elements())
{
listView1.Items.Add(worker.Element("fio").Value);
listView1.Items[worker.Items.Count - 1].SubItems.Add(worker.Element("home").Value);
listView1.Items[listView1.Items.Count - 1].SubItems.Add(worker.Element("name").Value);
}
Но когда я запускаю программу, выводится только фамилия и адрес и то только первая запись, а название работы вовсе нет.
Как сделать так чтобы выводил все записи, то есть фамилию и адрес, а также, чтоб выводил название работы ?
xml невалидный.
В одном случае узел list_work это самостоятельный узел,
в другом — list_work вложен в узел employee.
На случай, если в документе узел list_work вложенный:
XElement xelement = XElement.Load("worker.xml");
foreach (var employee in xelement.Elements())
{
string[] arr = new string[3]
{
employee.Element("fio").Value,
employee.Element("home").Value,
""
};
var works = employee.Element("list_work").Elements("work")
.Select(work => work.Element("name").Value).ToList();
if (works.Count > 0)
arr[2] = works[0];
listView1.Items.Add(new ListViewItem(arr));
foreach (var item in works.Skip(1))
{
arr = new string[3] { "", "", item };
listView1.Items.Add(new ListViewItem(arr));
}
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Прошу помочь в решении задачи: Есть некоторое количество 3-х мерных моделейТак же имеется несколько моделей управления, которые по начальным...
Вопрос теоретический, если какой нибудь инструмент где можно работать с сетевыми пакетамиДопустим, поймать пакет сетевой, и заменить в нем...
Есть кодМне необходимо чтобы клиент приложение в консоли выводило строки из БД Оракл