更新XML文件中的特定内容

时间:2013-07-02 14:55:15

标签: c# xml

我正在尝试创建一个更新XML文件中内容的工具。 我最大的问题是如何让程序知道在哪里更新内容。

以下是XML文件前五行的示例。

<?xml version="1.0" encoding="UTF-8"?>
<monster name="Demon" nameDescription="a demon" race="fire" experience="6000" speed="280" manacost="0">
    <health now="8200" max="8200"/>
    <look type="35" corpse="5995"/>
    <targetchange interval="5000" chance="10"/>

假设我想修改经验值,我该怎么做? 我已经查看了这个网站上已经存在的说明,但没有涉及到类似的内容。

我使用的是C#Windows Form。

2 个答案:

答案 0 :(得分:4)

使用Linq to Xml,您可以:

XDocument xdoc = XDocument.Load(path_to_xml); // load xml file
// query for data you want to update
var experience = xdoc.Root.Attribute("experience");
experience.SetValue(42); // update data
xdoc.Save(path_to_xml); // save updated data

答案 1 :(得分:0)

有很多方法可以做到这一点:

  1. 在.Net中使用XMLDocument和其他内置类。您可以打开文件并将XML加载到类中,然后使用XPath来获取属性。这与@ lazyberezovsky的答案类似。

  2. hack-y解决方案是对文件文本进行字符串解析。查找experience=",并注意从那里开始,下一个"是您要更改的值。这不是我的第一个建议,但有时我想要最快的黑客来更改XML文件。