首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在C#的编辑模式下编辑XML文件

如何在C#的编辑模式下编辑XML文件
EN

Stack Overflow用户
提问于 2017-07-26 19:58:13
回答 3查看 227关注 0票数 0

我正在尝试使用xml在编辑模式下更新我的网格,但是我不能这样做。

我只能编辑一个元素,但不知道如何编辑多个元素

我的xml文件如下所示

代码语言:javascript
运行
复制
<CATALOG>
  <CD>
    <ID>1</ID>
    <Application>Dot Net</Application>
    <status>Available</status>
    <LastUpdate>02-07-2017</LastUpdate>
    <Comments>The Rox for July has been loaded</Comments>
  </CD>
  <CD>
    <ID>2</ID>
    <Application>JFORWBK</Application>
    <status>Available</status>
    <LastUpdate>05-07-2017</LastUpdate>
    <Comments>DeLorean data has been loaded</Comments>
  </CD>
  <CD>
    <ID>3</ID>
    <Application>Codepress</Application>
    <status>Open for Input</status>
    <LastUpdate>06-07-2017</LastUpdate>
    <Comments>The Rox for July has been loaded</Comments>
  </CD>
</catalog>

当我在编辑模式下打开网格中的数据时,我可以更新单个元素的id

如果我在隐藏字段中有值,我如何一次更新所有元素。

我可以根据in更新我的xml元素。我在一次中只能更新一个元素。

代码如下:

代码语言:javascript
运行
复制
 ID = Request.QueryString["sID"];
                    XmlDocument xmlDoc = new XmlDocument();
                    string filepathsUpdate = Server.MapPath("Action.xml");
                    xmlDoc.Load(filepathsUpdate);
                    XmlNode node = xmlDoc.SelectSingleNode("/CATALOG/CD[ID=" + ID + "]/Action");
                    node.InnerText = ssplit[0];
                    xmlDoc.Save(filepathsUpdate);

现在如何在服务器端单击C#中的更新按钮,在编辑模式下更新、和注释。

EN

回答 3

Stack Overflow用户

发布于 2017-07-26 20:06:18

为什么不使用循环逐个更新它们,就像这样。

将所有隐藏字段值放在Ids列表中。然后使用循环来更新XML。

代码语言:javascript
运行
复制
List<int> Ids = new List<int>();
Ids.Add(1);

for (int i = 0; i < Ids.Count; i++)
{
    ID = Request.QueryString["sID"];
    XmlDocument xmlDoc = new XmlDocument();
    string filepathsUpdate = Server.MapPath("Action.xml");
    xmlDoc.Load(filepathsUpdate);
    XmlNode node = xmlDoc.SelectSingleNode("/CATALOG/CD[ID=" + Ids[i].ToString() + "]/Action");
    node.InnerText = ssplit[0];
    xmlDoc.Save(filepathsUpdate);
}
票数 1
EN

Stack Overflow用户

发布于 2017-07-26 20:21:07

在LINQ to XML中,它非常简单:

代码语言:javascript
运行
复制
var id = Request.QueryString["sID"];
XDocument doc = XDocument.Load("Action.xml");
var catalogDescendants = doc.Descendants("CATALOG");
foreach (var cd in catalogDescendants)
{
    //you can update the id here for whatever you want
    cd.Element("ID").Value = id;
}
票数 1
EN

Stack Overflow用户

发布于 2017-07-26 20:04:11

您可以使用XmlNodeList,对该列表中的每个XmlNode进行迭代,然后执行更新。

如果我没记错的话,它应该是这样的

代码语言:javascript
运行
复制
foreach(XmlNode node in XmlDoc.selectNodes("nodename")){node.innerText = "updated value here";}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45326315

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档