c# - 使用 C# 显示和修改 xml 数据
问题描述
C# 编程新手,我现在有点卡住了。我将如何创建一个简单的程序,让我在 connectionStrings 中提取和显示数据源值。让我修改ID和密码?我是否在解析的正确轨道上
Document X = XDocument.Load("C:\Users\Odd_Creature\Desktop\SecureConfig\\UserProfiles\UserInfo.exe.config")
var configuration= X.Element("configuration").Element("connectionStrings");
var location = configuration.Descendants("").Attributes("").FirstOrDefault().Value;
doc.Save(xmlfile);
XML文件
<configuration>
<configProtectedData />
<system.diagnostics />
<system.windows.forms />
<uri />
<appSettings>
<add key="GenerateProfile" value="true" />
<add key="TestScore" value="30" />
<add key="TestApplicationName" value="User Account" />
</appSettings>
<connectionStrings>
<add name="MyExample.database" connectionString="data source=.\SQLEXPRESS;initial catalog=wadb;integrated security=false;encrypt=true;trustservercertificate=true;User Id=Tester;Password=Test1;"
providerName="System.Data.SqlClient" />
</connectionStrings>
解决方案
这将是从 XML 文件中解析连接字符串的蛮力方法。
static void Main(string[] args)
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("settings.xml");
string connectionStrings = xmlDoc.GetElementsByTagName("connectionStrings")[0].InnerXml;
string tag = "connectionString=\"";
string connectionString = connectionStrings.Substring(connectionStrings.IndexOf(tag) + tag.Length);
string[] tokens = connectionString.Split(';');
Console.WriteLine(tokens.FirstOrDefault(t => t.Contains("data source=")));
Console.WriteLine(tokens.FirstOrDefault(t => t.Contains("User Id=")));
Console.WriteLine(tokens.FirstOrDefault(t => t.Contains("Password=")));
}
输出将是:
数据源=.\SQLEXPRESS
用户 ID=测试者
密码=Test1
使用更多代码,您应该能够编辑这些字段,然后使用 xmlDoc.Save() 更新您的更改。
推荐阅读
- php - 将本地站点数据库同步到实时站点数据库
- mysql - MySQL can't apply foreign key constraint
- c# - 在 C# 中比较两个具有自定义类型的对象
- javascript - 给定订单大小的数组可以取出多少商品
- python - 获取迁移错误
- identityserver4 - IdentityServer4 OIDC 请求对象支持
- java - Java 私有静态最终字段和匿名内部类与 Kotlin const val 和对象表达式/声明
- r - 转换为 plotly 时保留 ggplot2 引用
- reactjs - 尝试导航 null 不在评估 C.State 的对象上
- python - 根据相似的列值将单独的熊猫数据框中的列相乘