将文本框值写入C#.net中的xml文件
本文关键字:net 中的 xml 文件 文本 | 更新日期: 2023-09-27 18:20:31
我有两个文本框,即txtUserid
和txtPassowrd
。
我正在将文本框中输入的值写入XML
文件,但我不希望相同的txtuserid
值在XML
中写入两次——它应该被覆盖。
例如:
- 如果我输入
txtUserid=2
和txtPassword=I
- 第二次如果我输入
txtUserid=2
和txtPassword=m
那么我只想在XML
文件中保留一个条目:
对于上述示例:txtUserid=2
和textPassword=m
代码:
XDocument Xdoc = new XDocument(new XElement("Users"));
if (System.IO.File.Exists("D:''Users.xml"))
{
Xdoc = XDocument.Load("D:''Users.xml");
}
else
{
Xdoc = new XDocument();
}
XElement xml = new XElement("Users",
new XElement("User",
new XAttribute("UserId", txtUserName.Text),
new XAttribute("Password", txtPassword.Text)));
if (Xdoc.Descendants().Count() > 0)
{
Xdoc.Descendants().First().Add(xml);
}
else
{
Xdoc.Add(xml);
}
Xdoc.Save("D:''Users.xml");
在现有的XML文档中搜索UserId属性与当前节点匹配的节点,如果匹配,则修改该节点,否则创建一个新节点。
我想你的coude会像下面这样:
List<XElement> list = Xdoc.Descendants("User").Where(el => el.Attribute("UserId").Value == txtUserName.Text).ToList();
if (list.Count == 0)
{
// Add new node
}
else
{
// Modify the existing node
}
编辑:作为对您评论的回应,编辑XElement的代码看起来像
string myValue = "myValue";
list.First().Attribute("ElementName").SetValue(myValue);
在C#中将文本框值写入XML文件
protected void btnSave_Click(object sender, EventArgs e)
{
// Open the XML doc
System.Xml.XmlDocument myXmlDocument = new System.Xml.XmlDocument();
myXmlDocument.Load(Server.MapPath("InsertData.xml"));
System.Xml.XmlNode myXmlNode = myXmlDocument.DocumentElement.FirstChild;
// Create new XML element and populate its attributes
System.Xml.XmlElement myXmlElement = myXmlDocument.CreateElement("entry");
myXmlElement.SetAttribute("Userid", Server.HtmlEncode(textUserid.Text));
myXmlElement.SetAttribute("Username", Server.HtmlEncode(textUsername.Text));
myXmlElement.SetAttribute("AccountNo", Server.HtmlEncode(txtAccountNo.Text));
myXmlElement.SetAttribute("BillAmount", Server.HtmlEncode(txtBillAmount.Text));
// Insert data into the XML doc and save
myXmlDocument.DocumentElement.InsertBefore(myXmlElement, myXmlNode);
myXmlDocument.Save(Server.MapPath("InsertData.xml"));
// Re-bind data since the doc has been added to
BindData();
Response.Write(@"<script language='javascript'>alert('Record inserted Successfully Inside the XML File....')</script>");
textUserid.Text = "";
textUsername.Text = "";
txtAccountNo.Text = "";
txtBillAmount.Text = "";
}
void BindData()
{
XmlTextReader myXmlReader = new XmlTextReader(Server.MapPath("InsertData.xml"));
myXmlReader.Close();
}