读取/写入使用 csd 生成的 xml

Posted

技术标签:

【中文标题】读取/写入使用 csd 生成的 xml【英文标题】:Read/Write to xml that was generated using csd 【发布时间】:2012-03-13 07:05:24 【问题描述】:

我已使用配置部分设计器 (csd) 为我的应用程序生成 xml 配置文件。

现在,我想使用这个 xml 文件(在 c# 上)并做两件事:

1. 读取特定值(按字段搜索),类似于

txtbox_username.Text = ConfigurationManager.AppSettings["userName"];

2.写一个具体的值,比如

config.AppSettings.Settings["userName"].Value = txtbox_username.Text;

config.Save(ConfigurationSaveMode.Modified);

ConfigurationManager.RefreshSection("configuration");
p.s:这就是我对看起来像这样的常规 xml 文件执行读/写的方式:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
add key="userName" value="Value1"
  </appSettings>
</configuration>

但是 csd 生成的 xml 看起来不一样...

<?xml version="1.0"?>
<configuration>
  <configSections>
    <section name="sectionName" type="Sample.ConfigurationSection.sectionName, Sample.ConfigurationSection, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"/>
  </configSections>
  <sectionName xmlns="Sample.ConfigurationSection">
    <logFile debugLevel="3"  filePath="c:\new" maxFileCount="10" maxFileLength="1000"/>
    <results path="C:\Results"/>
    <details user="blabla" pass="12345" code="abc"/>
    <stuff fromAddress="from@gmail.com" toAddress="to@gmail.com" sendMail="true""/>
  </sectionName>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
  </startup>
</configuration>

在这里,我想编辑和保存,例如,用户/密码/代码字段。

【问题讨论】:

【参考方案1】:

简而言之(并使用这些扩展名:http://searisen.com/xmllib/extensions.wiki),您可以这样做来读/写用户,

XElement file = XElement.Load(xmlFile);
XNamespace ns = "Sample.ConfigurationSection";
XElement section = file.GetElement(ns + "sectionName");
string user = section.Get("details/user", string.Empty);
section.Set("details/user", "bubba", true); // true = set as attribute
file.Save(xmlFile);

【讨论】:

以上是关于读取/写入使用 csd 生成的 xml的主要内容,如果未能解决你的问题,请参考以下文章

读取和写入 XML 文件的异步方法

XML 读取/更改/保存 vb.net

PHP读取XML并写入数据库

在 PHP 中不使用太多内存的情况下读取/写入大型 XML

如何读取xml文件导出为excel文件

C#读取和写入XML文件