如何使用C#读取和编辑XML文件?

5
我该如何打开和编辑一个已存在的XML文件?我想修改一些值,比如:
<address>myaddr</address>

例如,我想将“myaddr”替换为“loreal”。我正在使用C#。如果您能向我展示一些代码,我将不胜感激。
3个回答

11
您可以使用XDocument类:

(您可以使用XDocument类:)

var doc = XDocument.Load("test.xml");
var address = doc.Root.Element("address");
if (address != null)
{
    address.Value = "new value";
}
doc.Save("test.xml");

非常感谢!如果 XML 文件的路径是动态的,我该如何在程序中处理? - hello
我不想给予根目录 c:\desktop\xml。 - hello
还有一个问题。如果我有:<path> <address> myaddr </address></path> 我应该如何编写? - hello
@你好,那么可以使用相对路径,假设文件将位于可执行文件所在的同一文件夹中。如果你有这个XML,你可以像我的答案中所示使用doc.Root.Element("address") - Darin Dimitrov
谢谢。那么关于<path><address> myaddr</address></path>呢? - hello
显示剩余2条评论

4
假设你有以下XML文件:
<root>
    <address>myaddr</address>
</root>

如果您想进行替换操作,有许多选项可供选择。一些选项是明确修改XML,而其他选项是将XML转换为类,修改并再次转换为XML(序列化)。以下是其中一种方法:

XDocument doc = XDocument.Load("myfile.xml");
doc.Root.Element("address").Value = "new address"
doc.Save("myfile.xml")

以下是更多信息:

  1. LINQ to XML是我在这里使用的技术 - http://msdn.microsoft.com/en-us/library/bb387098.aspx

  2. XML序列化是另一种技术 - http://msdn.microsoft.com/en-us/library/182eeyhh.aspx


我遇到了一个错误。NullReferenceException。对象引用未设置为对象的实例。为什么? - hello
问题是我有类似这样的东西 <r1><root><address>myaddr</address></root>。然后 <r2>...和同样的事情 - hello

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接