[英]Change xml attribute c#
需要更改name = "SqlServer"
属性
像xml一样的配置文件,不是来自我的项目
<connectionStrings>
<add name="SqlServer"
connectionString="Data Source=192.168.1.1; Initial Catalog=s; Application Name=s; MultipleActiveResultSets = true; Pooling=True; User ID=1111;Password=1111;" />
<add name="SqlServer_WinAuthentication"
connectionString="Data Source=.; Initial Catalog=MeterShop; Integrated Security=True; Application Name=MeterShop; MultipleActiveResultSets = true; Pooling=True;" />
<add name="SqlServer_SqlAuthentication"
connectionString="Data Source=.; Initial Catalog=MeterShop; User ID=1; Password=1; Application Name=1; MultipleActiveResultSets = true; Pooling=True;" />
</connectionStrings>
使用XML Linq
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Linq;
namespace ConsoleApplication70
{
class Program
{
static void Main(string[] args)
{
string xml =
"<connectionStrings>" +
"<add name=\"SqlServer\"" +
" connectionString=\"Data Source=192.168.1.1; Initial Catalog=s; Application Name=s; MultipleActiveResultSets = true; Pooling=True; User ID=1111;Password=1111;\" />" +
"<add name=\"SqlServer_WinAuthentication\"" +
" connectionString=\"Data Source=.; Initial Catalog=MeterShop; Integrated Security=True; Application Name=MeterShop; MultipleActiveResultSets = true; Pooling=True;\" />" +
"<add name=\"SqlServer_SqlAuthentication\"" +
" connectionString=\"Data Source=.; Initial Catalog=MeterShop; User ID=1; Password=1; Application Name=1; MultipleActiveResultSets = true; Pooling=True;\" />" +
"</connectionStrings>";
XElement connectionStrings = XElement.Parse(xml);
List<XAttribute> names = connectionStrings.Descendants("add").Select(x => x.Attribute("name")).ToList();
foreach (XAttribute name in names)
{
name.Value = "123";
}
}
}
}
有很多方法可以实现,我更喜欢Linq
而不是Xml
XDocument doc = XDocument.Parse(s);
var target = doc.Descendants("connectionStrings")
.SingleOrDefault(e => e.Element("add").Attribute("name").Value == "SqlServer");
一旦获得目标元素,就可以更新该值。
target.Element("add").Attribute("name").Value = "any thing you want";
doc.Save("filename"); // Save the file after your changes.
工作实例
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.