使用C#显示和修改xml数据

时间:2019-12-18 16:35:38

标签: c# asp.net xml parsing

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);

XMLFILE

<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>

1 个答案:

答案 0 :(得分:0)

这是从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 =测试人员

Password = Test1

使用更多的代码,您应该能够编辑这些字段,然后使用xmlDoc.Save()更新更改。