У меня небольшая проблема при загрузке моего XML файла в Listview. Он не загружает все значения, а загружает только отдельные узлы. не могли бы вы сказать мне, в чем проблема с моим l oop, чтобы загрузить значения? или какое-либо предложение, чтобы сделать это лучше и работать?
Кто-то предложил мне использовать JSON. net, чтобы упростить загрузку и сохранение в списке, но не могу найти ресурсы по этому поводу. поэтому я только что сделал xml, потому что это только то, что я знаю, когда дело доходит до сохранения и загрузки файлов.
Вот файл xml:
<?xml version="1.0" encoding="utf-8"?>
<Settings>
<title><![CDATA[Episode 1]]></title>
<duration><![CDATA[59.33]]></duration>
<resolution><![CDATA[1280x560]]></resolution>
<title><![CDATA[Episode 2]]></title>
<duration><![CDATA[01.04.25]]></duration>
<resolution><![CDATA[1280x560]]></resolution>
</Settings>
private void button1_Click(object sender, EventArgs e)
{
var file = @"C:\Users\MARK\Desktop\__TEST\SAMPLE.xml";
if (File.Exists(file))
{
XmlDocument doc = new XmlDocument();
doc.Load(file);
XmlNodeList topM = doc.SelectNodes("Settings");
LV.BeginUpdate();
foreach (XmlElement element in topM)
{
ListViewItem items = new ListViewItem();
XmlNodeList Title = element.GetElementsByTagName("title");
for (int i = 0; i < Title.Count; i++)
{
items.Text = Title[i].InnerText;
}
XmlNodeList Duration = element.GetElementsByTagName("duration");
for (int i = 0; i < Duration.Count; i++)
{
items.SubItems.Add(Duration[i].InnerText);
}
XmlNodeList Resolution = element.GetElementsByTagName("resolution");
for (int i = 0; i < Resolution.Count; i++)
{
items.SubItems.Add(Resolution[i].InnerText);
}
LV.Items.Add(items);
}
LV.EndUpdate();
}
}
private void button2_Click(object sender, EventArgs e)
{
var file = @"C:\Users\MARK\Desktop\__TEST\SAMPLE.xml";
using (XmlTextWriter xml = new XmlTextWriter(file, Encoding.UTF8))
{
xml.Formatting = System.Xml.Formatting.Indented;
xml.WriteStartDocument();
xml.WriteStartElement("Settings");
foreach (ListViewItem i in LV.Items)
{
xml.WriteStartElement("title");
xml.WriteCData(i.Text.ToString());
xml.WriteEndElement();
xml.WriteStartElement("duration");
xml.WriteCData(i.SubItems[1].Text);
xml.WriteEndElement();
xml.WriteStartElement("resolution");
xml.WriteCData(i.SubItems[2].Text);
xml.WriteEndElement();
}
xml.WriteEndElement();
xml.WriteEndDocument();
}
}