C# 从ASP.NET页面上的文本框编辑XML
我有一个XML文件XMLData.XMLC# 从ASP.NET页面上的文本框编辑XML,c#,asp.net,xml,C#,Asp.net,Xml,我有一个XML文件XMLData.XML <pdata> <name>John</name> <age>36</age> </pdata> 约翰 36 我希望能够从ASP.NET页面上的文本框控件覆盖“name”和“age”节点。我已经找到了很多关于如何使用datagrid实现这一点的信息,但是我需要为每个节点使用一个文本框 任何帮助都会很棒。尝试一下: <form id="form1" ru
<pdata>
<name>John</name>
<age>36</age>
</pdata>
约翰
36
我希望能够从ASP.NET页面上的文本框控件覆盖“name”和“age”节点。我已经找到了很多关于如何使用datagrid实现这一点的信息,但是我需要为每个节点使用一个文本框
任何帮助都会很棒。尝试一下:
<form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox1" runat="server" Height="251px" TextMode="MultiLine" Width="510px">
</asp:TextBox>
</div>
</form>
受保护的无效页面加载(对象发送方,事件参数e)
{
string xml=“root>aaa”;
XmlDocument doc=新的XmlDocument();
doc.LoadXml(xml);
StringBuilder sb=新的StringBuilder();
XmlWriterSettings=新的XmlWriterSettings();
settings.Indent=true;
XmlWriter=XmlWriter.Create(sb,设置);
书面文件(作者);
writer.Close();
this.TextBox1.Text=sb.ToString();
}
我不能100%肯定我理解你的问题,但是
看起来,如果您将文件加载到一个XMLDocument中,然后使用XPath选择要覆盖的XMLNode对象,并设置其内部文本属性,然后将xml文档写回即可
XMLDocument doc = new XMLDocument();
doc.load("filepath");
XmlNode root = doc.DocumentElement;
XmlNode name = root.SelectSingleNode("/pdata/name");
name.InnerText = TextBox.Value;
doc.WriteTo(new XmlWriter());
Linq转换为XML将使其更加简单
string path = Path.Combine(Server.MapPath("."), "App_Data\\XMLData.xml");
XDocument doc = XDocument.Load(path);
XElement myData = doc.Elements("pdata").Single();
myData.ReplaceNodes(
new XElement("name", NameText.Text.Trim()),
new XElement("age", AgeText.Text.Trim())
);
doc.Save(path);
LINQ转换为XML将使其更加简单。@SLaks-这是另一种可能性,是的。
string path = Path.Combine(Server.MapPath("."), "App_Data\\XMLData.xml");
XDocument doc = XDocument.Load(path);
XElement myData = doc.Elements("pdata").Single();
myData.ReplaceNodes(
new XElement("name", NameText.Text.Trim()),
new XElement("age", AgeText.Text.Trim())
);
doc.Save(path);