【问题标题】:How to change the value of an element in an xml file?如何更改xml文件中元素的值?
【发布时间】:2017-06-23 08:25:53
【问题描述】:

我想更改某些元素的值,但我的代码不起作用。 我有这个 XML 文件:

<?xml version="1.0" encoding="utf-8"?>
<data>
  <application id="1">
    <applicationName>Instagram</applicationName>
    <username>test</username>
    <password>123</password>
    <info>test</info>
  </application>
</data>

还有这个 C# 代码:

string applicationName = "Test";
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("Data.xml");
XmlNode node = xmlDoc.SelectSingleNode("/data/application[@id='1']/applicationName");
node.InnerText = applicationName;
xmlDoc.Save("Data.xml");

在 XML 文件中更改 applicationName 的正确代码是什么?

【问题讨论】:

  • 在这里代表所有用户:感谢您发布包含完整代码和数据的问题;非常感谢
  • 您发布的代码非常适合我...您确定您查看的是正确的文件吗?特别是,如果您在解决方案文件夹下查看,请确保查看 ./bin/debug 或 ./bin/release 中的输出文件。你能定义“不工作”吗?
  • 我第二个 Marc Gravell。效果很好。

标签: c# xml xmldocument xmlnode


【解决方案1】:

使用LINQXDocument

string applicationName = "Test";
XDocument xdocument = XDocument.Load("Data.xml");
var appName = xdocument.Elements("applicationName").Single();
appName.Value = applicationName;
xdocument.Save("Data.xml");

但你应该先将System.Xml.Linq 添加到你的 using 指令中。

【讨论】:

  • 这是 一种 方法,但是......这似乎没有必要,特别是考虑到问题中的代码工作正常
  • @MarcGravell BTW 我总是更喜欢尽可能使用 LINQ 和 XDocument
  • 有时这是完全有效的 - 某些工具具有优势和目标场景(同样:不受支持的场景),并且当人们使用不合适的工具时,它是完全合法的说“首先使用正确的工具”。然而,在这种情况下,这两种工具都是非常好的和合理的选择,并且除非有一个好的、客观的、明确的理由,IMO 最好帮助人们使用他们现有的完全合法的 工具选择。在这种情况下,问题中的代码已经完美运行并且可以执行所需的确切操作。它实际上需要零更改。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-06-18
  • 1970-01-01
  • 2021-10-08
  • 1970-01-01
  • 2010-11-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多