【发布时间】:2013-12-14 12:25:26
【问题描述】:
我在 xml 文件中输入数据,但它没有以正确的方式进行,因为当我检索我的数据时,它只检索部分数据。
你能帮我看看如何输入数据,检索整个数据并比较我在文本框中输入的特定数据吗????
这是我的代码: 这是用于输入数据的。:
string curFile = @"D:\5 Semester\Project\VP Project\VP Project\bin\Debug\New Entry.xml";
string s1 = textBox1.Text;
string s2 = textBox2.Text;
string s3 = comboBox3.Text;
string s4 = comboBox1.Text;
string s5 = comboBox2.Text;
if (File.Exists(curFile) && curFile!=null)
{
try
{
var library = XElement.Load("New Entry.xml");
library.Add(new XAttribute("FirstName",s1));
library.Add(new XElement("First", new XAttribute("Name", s1)));
library.Add(new XElement("Last", new XAttribute("Name", s2)));
library.Add(new XElement("Profession", new XAttribute("Type", s3)));
library.Add(new XElement("Department", new XAttribute("Degree", s4)));
library.Add(new XElement("Semester", new XAttribute("No", s5)));
library.Save("New Entry.xml");
MessageBox.Show("Data Appended!");
}
catch (Exception)
{
MessageBox.Show("Error");
}
}
else if (!(File.Exists(curFile)))
{
using (XmlWriter writer = XmlWriter.Create("New Entry.xml"))
{
writer.WriteStartDocument();
writer.WriteStartElement("New_Entry");
writer.WriteElementString("FirstName", s1);
writer.WriteElementString("LastName", s2);
writer.WriteElementString("Profession", s3);
writer.WriteElementString("Department", s4);
writer.WriteElementString("Semester", s5);
writer.WriteEndElement();
writer.WriteEndDocument();
writer.Close();
MessageBox.Show("File Created!");
}
}
else
{
MessageBox.Show("File Cannot be Created!");
}
这是用于检索数据:
XPathNavigator nav;
XPathDocument docNav;
docNav = new XPathDocument(@"D:\5 Semester\Project\VP Project\VP Project\bin\Debug\New Entry.xml");
nav = docNav.CreateNavigator();
nav.MoveToRoot();
nav.MoveToFirstChild();
do
{
//Find the first element.
if (nav.NodeType == XPathNodeType.Element)
{
//Determine whether children exist.
if (nav.HasChildren == true)
{
//Move to the first child.
nav.MoveToFirstChild();
//Loop through all the children.
listBox1.Items.Add("All Record ");
do
{
//Display the data.
listBox1.Show();
listBox1.Items.Add(nav.Value);
}
while (nav.MoveToNext());
}
}
}
while (nav.MoveToNext());
}
但它不是检索整个数据...。我如何比较存储在 xml 中的数据。我在文本框和 xml 文件数据中输入的数据如果匹配则显示以下数据。
【问题讨论】:
标签: c# xml linq-to-xml