c# 读取xml文件 怎么把下面xml文件的value=的值取出来呢

c# 读取xml文件 怎么把下面xml文件的value=的值取出来呢,第1张

SystemXmlXmlDocument xmlDoc = new SystemXmlXmlDocument();

xmlDocLoad(filename); //加载你的XML文件

SystemXmlXmlNode xmlno = xmlDocGetElementsByTagName(“AppConfig”)[0];//找到AppConfig元素

//下面的代码就是读出这个Value的方法了。 大概思路就是这样的。主要你要理解XML的DOM模型。

foreach (SystemXmlXmlNode xmlvalno in xmlnoChildNodes)

{

string value= xmlvalnoAttributes["Value"]Value;

}

应用程序配置文件(Appconfig)是标准的 XML 文件,XML 标记和属性是区分大小写的。它是可以按需要更改的,开发人员可以使用配置文件来更改设置,而不必重编译应用程序。

对于一个config文件:

<xml version="10" encoding="utf-8" >

<configuration>

<appSettings>

<add key="ServerIP" value="127001"></add>

<add key="DataBase" value="WarehouseDB"></add>

<add key="user" value="sa"></add>

<add key="password" value="sa"></add>

</appSettings>

</configuration>

对config配置文件的读写类:

using System;

using SystemCollectionsGeneric;

using SystemLinq;

using SystemText;

using SystemTextRegularExpressions;

using SystemConfiguration;

using SystemServiceModel;

using SystemServiceModelConfiguration;

namespace NetUtilityLib

{

public static class ConfigHelper

{

//依据连接串名字connectionName返回数据连接字符串

public static string GetConnectionStringsConfig(string connectionName)

{

//指定config文件读取

string file = SystemWindowsFormsApplicationExecutablePath;

SystemConfigurationConfiguration config = ConfigurationManagerOpenExeConfiguration(file);

string connectionString =

configConnectionStringsConnectionStrings[connectionName]ConnectionStringToString();

return connectionString;

}

///<summary>

///更新连接字符串

///</summary>

///<param name="newName">连接字符串名称</param>

///<param name="newConString">连接字符串内容</param>

///<param name="newProviderName">数据提供程序名称</param>

public static void UpdateConnectionStringsConfig(string newName, string newConString, string newProviderName)

{

//指定config文件读取

string file = SystemWindowsFormsApplicationExecutablePath;

Configuration config = ConfigurationManagerOpenExeConfiguration(file);

bool exist = false; //记录该连接串是否已经存在

//如果要更改的连接串已经存在

if (configConnectionStringsConnectionStrings[newName] != null)

{

exist = true;

}

// 如果连接串已存在,首先删除它

if (exist)

{

configConnectionStringsConnectionStringsRemove(newName);

}

//新建一个连接字符串实例

ConnectionStringSettings mySettings =

new ConnectionStringSettings(newName, newConString, newProviderName);

// 将新的连接串添加到配置文件中

configConnectionStringsConnectionStringsAdd(mySettings);

// 保存对配置文件所作的更改

configSave(ConfigurationSaveModeModified);

// 强制重新载入配置文件的ConnectionStrings配置节

ConfigurationManagerRefreshSection("ConnectionStrings");

}

///<summary>

///返回execonfig文件中appSettings配置节的value项

///</summary>

///<param name="strKey"></param>

///<returns></returns>

public static string GetAppConfig(string strKey)

{

string file = SystemWindowsFormsApplicationExecutablePath;

Configuration config = ConfigurationManagerOpenExeConfiguration(file);

foreach (string key in configAppSettingsSettingsAllKeys)

{

if (key == strKey)

{

return configAppSettingsSettings[strKey]ValueToString();

}

}

return null;

}

///<summary>

///在execonfig文件中appSettings配置节增加一对键值对

///</summary>

///<param name="newKey"></param>

///<param name="newValue"></param>

public static void UpdateAppConfig(string newKey, string newValue)

{

string file = SystemWindowsFormsApplicationExecutablePath;

Configuration config = ConfigurationManagerOpenExeConfiguration(file);

bool exist = false;

foreach (string key in configAppSettingsSettingsAllKeys)

{

if (key == newKey)

{

exist = true;

}

}

if (exist)

{

configAppSettingsSettingsRemove(newKey);

}

configAppSettingsSettingsAdd(newKey, newValue);

configSave(ConfigurationSaveModeModified);

ConfigurationManagerRefreshSection("appSettings");

}

// 修改systemserviceModel下所有服务终结点的IP地址

public static void UpdateServiceModelConfig(string configPath, string serverIP)

{

Configuration config = ConfigurationManagerOpenExeConfiguration(configPath);

ConfigurationSectionGroup sec = configSectionGroups["systemserviceModel"];

ServiceModelSectionGroup serviceModelSectionGroup = sec as ServiceModelSectionGroup;

ClientSection clientSection = serviceModelSectionGroupClient;

foreach (ChannelEndpointElement item in clientSectionEndpoints)

{

string pattern = @"\b\d{1,3}\\d{1,3}\\d{1,3}\\d{1,3}\b";

string address = itemAddressToString();

string replacement = stringFormat("{0}", serverIP);

address = RegexReplace(address, pattern, replacement);

itemAddress = new Uri(address);

}

configSave(ConfigurationSaveModeModified);

ConfigurationManagerRefreshSection("systemserviceModel");

}

// 修改applicationSettings中AppPropertiesSettings中服务的IP地址

public static void UpdateConfig(string configPath, string serverIP)

{

Configuration config = ConfigurationManagerOpenExeConfiguration(configPath);

ConfigurationSectionGroup sec = configSectionGroups["applicationSettings"];

ConfigurationSection configSection = secSections["DataServicePropertiesSettings"];

ClientSettingsSection clientSettingsSection = configSection as ClientSettingsSection;

if (clientSettingsSection != null)

{

SettingElement element1 = clientSettingsSectionSettingsGet("DataService_SystemManagerWS_SystemManagerWS");

if (element1 != null)

{

clientSettingsSectionSettingsRemove(element1);

string oldValue = element1ValueValueXmlInnerXml;

element1ValueValueXmlInnerXml = GetNewIP(oldValue, serverIP);

clientSettingsSectionSettingsAdd(element1);

}

SettingElement element2 = clientSettingsSectionSettingsGet("DataService_EquipManagerWS_EquipManagerWS");

if (element2 != null)

{

clientSettingsSectionSettingsRemove(element2);

string oldValue = element2ValueValueXmlInnerXml;

element2ValueValueXmlInnerXml = GetNewIP(oldValue, serverIP);

clientSettingsSectionSettingsAdd(element2);

}

}

configSave(ConfigurationSaveModeModified);

ConfigurationManagerRefreshSection("applicationSettings");

}

private static string GetNewIP(string oldValue, string serverIP)

{

string pattern = @"\b\d{1,3}\\d{1,3}\\d{1,3}\\d{1,3}\b";

string replacement = stringFormat("{0}", serverIP);

string newvalue = RegexReplace(oldValue, pattern, replacement);

return newvalue;

}

}

}

测试代码如下:

class Program

{

static void Main(string[] args)

{

try

{

//string file = SystemWindowsFormsApplicationExecutablePath + "config";

//string file1 = AppDomainCurrentDomainSetupInformationConfigurationFile;

string serverIP = ConfigHelperGetAppConfig("ServerIP");

string db = ConfigHelperGetAppConfig("DataBase");

string user = ConfigHelperGetAppConfig("user");

string password = ConfigHelperGetAppConfig("password");

ConsoleWriteLine(serverIP);

ConsoleWriteLine(db);

ConsoleWriteLine(user);

ConsoleWriteLine(password);

ConfigHelperUpdateAppConfig("ServerIP", "192168111");

string newIP = ConfigHelperGetAppConfig("ServerIP");

ConsoleWriteLine(newIP);

ConsoleReadKey();

}

catch (Exception ex)

{

ConsoleWriteLine(exMessage);

}

}

}

代码如下:

using System;

using SystemCollectionsGeneric;

using SystemLinq;

using SystemText;

using SystemTextRegularExpressions;

using SystemConfiguration;

using SystemServiceModel;

using SystemServiceModelConfiguration;

namespace NetUtilityLib

{

public static class ConfigHelper

{

//依据连接串名字connectionName返回数据连接字符串

public static string GetConnectionStringsConfig(string connectionName)

{

//指定config文件读取

string file = SystemWindowsFormsApplicationExecutablePath;

SystemConfigurationConfiguration config = ConfigurationManagerOpenExeConfiguration(file);

string connectionString =

configConnectionStringsConnectionStrings[connectionName]ConnectionStringToString();

return connectionString;

}

///<summary>

///更新连接字符串

///</summary>

///<param name="newName">连接字符串名称</param>

///<param name="newConString">连接字符串内容</param>

///<param name="newProviderName">数据提供程序名称</param>

public static void UpdateConnectionStringsConfig(string newName, string newConString, string newProviderName)

{

//指定config文件读取

string file = SystemWindowsFormsApplicationExecutablePath;

Configuration config = ConfigurationManagerOpenExeConfiguration(file);

bool exist = false; //记录该连接串是否已经存在

//如果要更改的连接串已经存在

if (configConnectionStringsConnectionStrings[newName] != null)

{

exist = true;

}

// 如果连接串已存在,首先删除它

if (exist)

{

configConnectionStringsConnectionStringsRemove(newName);

}

//新建一个连接字符串实例

ConnectionStringSettings mySettings =

new ConnectionStringSettings(newName, newConString, newProviderName);

// 将新的连接串添加到配置文件中

configConnectionStringsConnectionStringsAdd(mySettings);

// 保存对配置文件所作的更改

configSave(ConfigurationSaveModeModified);

// 强制重新载入配置文件的ConnectionStrings配置节

ConfigurationManagerRefreshSection("ConnectionStrings");

}

///<summary>

///返回execonfig文件中appSettings配置节的value项

///</summary>

///<param name="strKey"></param>

///<returns></returns>

public static string GetAppConfig(string strKey)

{

string file = SystemWindowsFormsApplicationExecutablePath;

Configuration config = ConfigurationManagerOpenExeConfiguration(file);

foreach (string key in configAppSettingsSettingsAllKeys)

{

if (key == strKey)

{

return configAppSettingsSettings[strKey]ValueToString();

}

}

return null;

}

///<summary>

///在execonfig文件中appSettings配置节增加一对键值对

///</summary>

///<param name="newKey"></param>

///<param name="newValue"></param>

public static void UpdateAppConfig(string newKey, string newValue)

{

string file = SystemWindowsFormsApplicationExecutablePath;

Configuration config = ConfigurationManagerOpenExeConfiguration(file);

bool exist = false;

foreach (string key in configAppSettingsSettingsAllKeys)

{

if (key == newKey)

{

exist = true;

}

}

if (exist)

{

configAppSettingsSettingsRemove(newKey);

}

configAppSettingsSettingsAdd(newKey, newValue);

configSave(ConfigurationSaveModeModified);

ConfigurationManagerRefreshSection("appSettings");

}

// 修改systemserviceModel下所有服务终结点的IP地址

public static void UpdateServiceModelConfig(string configPath, string serverIP)

{

Configuration config = ConfigurationManagerOpenExeConfiguration(configPath);

ConfigurationSectionGroup sec = configSectionGroups["systemserviceModel"];

ServiceModelSectionGroup serviceModelSectionGroup = sec as ServiceModelSectionGroup;

ClientSection clientSection = serviceModelSectionGroupClient;

foreach (ChannelEndpointElement item in clientSectionEndpoints)

{

string pattern = @"\b\d{1,3}\\d{1,3}\\d{1,3}\\d{1,3}\b";

string address = itemAddressToString();

string replacement = stringFormat("{0}", serverIP);

address = RegexReplace(address, pattern, replacement);

itemAddress = new Uri(address);

}

configSave(ConfigurationSaveModeModified);

ConfigurationManagerRefreshSection("systemserviceModel");

}

// 修改applicationSettings中AppPropertiesSettings中服务的IP地址

public static void UpdateConfig(string configPath, string serverIP)

{

Configuration config = ConfigurationManagerOpenExeConfiguration(configPath);

ConfigurationSectionGroup sec = configSectionGroups["applicationSettings"];

ConfigurationSection configSection = secSections["DataServicePropertiesSettings"];

ClientSettingsSection clientSettingsSection = configSection as ClientSettingsSection;

if (clientSettingsSection != null)

{

SettingElement element1 = clientSettingsSectionSettingsGet("DataService_SystemManagerWS_SystemManagerWS");

if (element1 != null)

{

clientSettingsSectionSettingsRemove(element1);

string oldValue = element1ValueValueXmlInnerXml;

element1ValueValueXmlInnerXml = GetNewIP(oldValue, serverIP);

clientSettingsSectionSettingsAdd(element1);

}

SettingElement element2 = clientSettingsSectionSettingsGet("DataService_EquipManagerWS_EquipManagerWS");

if (element2 != null)

{

clientSettingsSectionSettingsRemove(element2);

string oldValue = element2ValueValueXmlInnerXml;

element2ValueValueXmlInnerXml = GetNewIP(oldValue, serverIP);

clientSettingsSectionSettingsAdd(element2);

}

}

configSave(ConfigurationSaveModeModified);

ConfigurationManagerRefreshSection("applicationSettings");

}

private static string GetNewIP(string oldValue, string serverIP)

{

string pattern = @"\b\d{1,3}\\d{1,3}\\d{1,3}\\d{1,3}\b";

string replacement = stringFormat("{0}", serverIP);

string newvalue = RegexReplace(oldValue, pattern, replacement);

return newvalue;

}

}

}

SystemXmlXmlDocument

xmlDoc

=

new

SystemXmlXmlDocument();

xmlDocLoad(filename);

//加载你的XML文件

SystemXmlXmlNode

xmlno

=

xmlDocGetElementsByTagName(“AppConfig”)[0];//找到AppConfig元素

//下面的代码就是读出这个Value的方法了。

大概思路就是这样的。主要你要理解XML的DOM模型。

foreach

(SystemXmlXmlNode

xmlvalno

in

xmlnoChildNodes)

{

string

value=

xmlvalnoAttributes["Value"]Value;

}

以上就是关于c# 读取xml文件 怎么把下面xml文件的value=的值取出来呢全部的内容,包括:c# 读取xml文件 怎么把下面xml文件的value=的值取出来呢、c#读取Config文件的问题、如何读取多个config配置文件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9303929.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存