更新XML文件中的特定内容

本文关键字:XML 文件 更新 | 更新日期: 2023-09-27 18:20:53

我正在尝试创建一个更新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窗体。

更新XML文件中的特定内容

使用Linq到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. 使用XMLDocument和.Net中的其他内置类。您可以打开文件并将XML加载到类中,然后使用XPath获取属性。这与@lazybrezovsky的回答类似。

  2. hack-y的解决方案是对文件的文本进行字符串解析。查找experience=",并注意,从中和下一个"是您要更改的值。这不是我的第一个建议,但我有时会这样做,因为我想用最快的方法更改XML文件。