【发布时间】:2019-06-01 21:24:26
【问题描述】:
我正在尝试在 XML 文件中写入和读取数据,写入工作正常,但在读取时我得到 System.Xml.Linq.XContainer.Element(...) 返回 null。错误。我首先通过表单从用户那里获取输入,将其保存在 XML 中,然后从 XML 中获取数据并在列表视图中显示它
编写代码
private void Btn_addproduct_Click(object sender, RoutedEventArgs e)
{
i++;
XDocument doc = XDocument.Load("C:\\Users\\karam\\source\\repos\\KanbanBoard\\bin\\Debug\\tester.xml");
doc.Root.Add(new XElement("Project",
new XElement("ProjectId", i),
new XElement("ProjectTitle", projectTitle.Text),
new XElement("ProjectDescription", projectDescription.Text),
new XElement("StartDate", startDate.Text),
new XElement("EndDate", endDate.Text),
new XElement("ToDoLimit", toDoLimit.Text),
new XElement("WorkInProgressLimit", workInProgressLimit.Text),
new XElement("DoneLimit", doneLimit.Text)
));
doc.Save("C:\\Users\\karam\\source\\repos\\KanbanBoard\\bin\\Debug\\tester.xml");
}
阅读代码
private void Btn_productlist_Click(object sender, RoutedEventArgs e)
{
XDocument doc = XDocument.Load("C:\\Users\\karam\\source\\repos\\KanbanBoard\\bin\\Debug\\tester.xml");
var result=doc.Descendants("Projects").Select(x=>new
{
projectid = x.Element("ProjectId").Value,
projecttitle = x.Element("ProjectTitle").Value,
projectdescription = x.Element("ProjectDescription").Value,
startdate = x.Element("StartDate").Value,
enddate = x.Element("EndDate").Value,
todolimit = x.Element("ToDoLimit").Value,
workinprogresslimit = x.Element("WorkInProgressLimit").Value,
donelimit = x.Element("DoneLimit").Value,
});
Projectlistview.ItemsSource = result;
}
【问题讨论】:
-
您正在写入“项目”元素,但从“项目”中读取