c# - 从列表视图填充 xml 的 C# 问题
问题描述
从列表视图值填充 XML 文件时出现问题。我有一个预定义的 XML 结构,需要填充数据。这是我正在使用的代码
const int Pozicija0 = 0;
const int Pozicija1 = 1;
const int Pozicija2 = 2;
const int Pozicija3 = 3;
const int Pozicija4 = 4;
const int Pozicija5 = 5;
const int Pozicija6 = 6;
for (int i = 0; i < listView1.Items.Count; i++)
{
string Item0 = listView1.Items[i].SubItems[Pozicija0].Text;
string Item1 = listView1.Items[i].SubItems[Pozicija1].Text;
string Item2 = listView1.Items[i].SubItems[Pozicija2].Text;
string Item3 = listView1.Items[i].SubItems[Pozicija3].Text;
string Item4 = listView1.Items[i].SubItems[Pozicija4].Text;
string Item5 = listView1.Items[i].SubItems[Pozicija5].Text;
string Item6 = listView1.Items[i].SubItems[Pozicija6].Text;
decimal d3 = decimal.Parse(Item6);
decimal d2 = decimal.Parse(Item4);
decimal d1 = decimal.Parse(Item5);
DateTime date = DateTime.Parse(Item3);
string a = Convert.ToString(date.ToString("yyyy-MM-dd"));
XElement xml = new XElement("PaketniUvozObrazaca",
new XElement("PodaciOPoslodavcu",
new XElement("JIBPosladavca", label8.Text),
new XElement("NazivPoslodavca", label9.Text),
new XElement("BrojZahtjeva", 1),
new XElement("DatumPodnosenja", dateTimePicker1.Value.ToString("yyyy-MM-dd"))),
new XElement("Obrazac1023",
new XElement("Dio1",
new XElement("JibJMB", label8.Text),
new XElement("Naziv", label9.Text),
new XElement("DatumUpisa", dateTimePicker1.Value.ToString("yyyy-MM-dd")),
new XElement("BrojUposlenih", label5.Text),
new XElement("PeriodOd", dateTimePicker2.Value.ToString("yyyy-MM-dd")),
new XElement("PeriodDo", dateTimePicker3.Value.ToString("yyyy-MM-dd")),
new XElement("SifraDjelatnosti", label10.Text))),
new XElement("Dio2",
new XElement("PodaciOPrihodima",
new XElement("VrstaIsplate", Item0),
new XElement("Jmb", Item1),
new XElement("ImePrezime", Item2),
new XElement("DatumIsplate", a),
new XElement("RadniSati", d2),
new XElement("RadniSatiBolovanje", d1),
new XElement("BrutoPlaca", d3))));
xml.Save("C:\\oemPlate\\Emir.xml");
}
我遇到的问题是它只导出列表视图中的最后一行并忽略所有其他行。
任何帮助将不胜感激。
谢谢
解决方案
我稍微移动了代码。见下文
const int Pozicija0 = 0;
const int Pozicija1 = 1;
const int Pozicija2 = 2;
const int Pozicija3 = 3;
const int Pozicija4 = 4;
const int Pozicija5 = 5;
const int Pozicija6 = 6;
string ident = "<?xml version=\"1.0\" encoding=\"utf-8\" ?><PaketniUvozObrazaca></PaketniUvozObrazaca>";
XDocument doc = XDocument.Parse(ident);
XElement PaketniUvozObrazaca = doc.Root;
PaketniUvozObrazaca.Add(
new XElement("PodaciOPoslodavcu",
new XElement("JIBPosladavca", label8.Text),
new XElement("NazivPoslodavca", label9.Text),
new XElement("BrojZahtjeva", 1),
new XElement("DatumPodnosenja", dateTimePicker1.Value.ToString("yyyy-MM-dd"))));
for (int i = 0; i < listView1.Items.Count; i++)
{
string Item0 = listView1.Items[i].SubItems[Pozicija0].Text;
string Item1 = listView1.Items[i].SubItems[Pozicija1].Text;
string Item2 = listView1.Items[i].SubItems[Pozicija2].Text;
string Item3 = listView1.Items[i].SubItems[Pozicija3].Text;
string Item4 = listView1.Items[i].SubItems[Pozicija4].Text;
string Item5 = listView1.Items[i].SubItems[Pozicija5].Text;
string Item6 = listView1.Items[i].SubItems[Pozicija6].Text;
decimal d3 = decimal.Parse(Item6);
decimal d2 = decimal.Parse(Item4);
decimal d1 = decimal.Parse(Item5);
DateTime date = DateTime.Parse(Item3);
string a = Convert.ToString(date.ToString("yyyy-MM-dd"));
XElement Obrazac1023 =
new XElement("Obrazac1023",
new XElement("Dio1",
new XElement("JibJMB", label8.Text),
new XElement("Naziv", label9.Text),
new XElement("DatumUpisa", dateTimePicker1.Value.ToString("yyyy-MM-dd")),
new XElement("BrojUposlenih", label5.Text),
new XElement("PeriodOd", dateTimePicker2.Value.ToString("yyyy-MM-dd")),
new XElement("PeriodDo", dateTimePicker3.Value.ToString("yyyy-MM-dd")),
new XElement("SifraDjelatnosti", label10.Text))),
new XElement("Dio2",
new XElement("PodaciOPrihodima",
new XElement("VrstaIsplate", Item0),
new XElement("Jmb", Item1),
new XElement("ImePrezime", Item2),
new XElement("DatumIsplate", a),
new XElement("RadniSati", d2),
new XElement("RadniSatiBolovanje", d1),
new XElement("BrutoPlaca", d3)));
PaketniUvozObrazaca.Add(Obrazac1023);
}
doc.Save("C:\\oemPlate\\Emir.xml");
推荐阅读
- python - 缺少值的 SMOTE
- android - Jetpack 分页库返回所有数据
- c# - 文本框和按钮文本属性未在更新面板内的 gridviews 行命令上更新
- reactjs - Redux Saga - 将结果返回给被调用函数而不是调度新动作
- android-install-apk - 我无法从构建文件夹安装调试 Apk,被播放保护阻止
- h.264 - 飞思卡尔:为什么飞思卡尔 iMX6 上 H264 编码视频的比特率(和文件大小)与视频分辨率成反比?
- java - Vaadin + Spring Boot 应用程序在长时间空闲后非常慢
- llvm - 如何通过 call & bitcast 获取 gettimeofday (llvm::Function* )?
- spring - 从 Spring Condition 内部查询 DB
- java - Spring MVC 应用程序中包含 AspectJ 切入点的第三方 JAR