<configuration>
  <configSections>
  </configSections>
  <connectionStrings>
    <add name="PS.Entity.Properties.Settings.popular_netConnectionString"
      connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Popular.NET\\bin\\popular.net.mdb"
      providerName="System.Data.OleDb" />
    <add name="PS.DAL.Properties.Settings.popular_netConnectionString"
      connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\popular.net.mdb"
      providerName="System.Data.OleDb" />
    <add name="PS.DAL.Properties.Settings.CertifyConnectionString"
      connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mikebai\PG\Popular.NET\bin\Certify.mdb"
      providerName="System.Data.OleDb" />
  </connectionStrings>
</configuration>
上面是winForm中的app.config文件中的连接字符串。String s=以上字符串现在我想对S进行分析。            
XmlTextReader reader = new XmlTextReader(new StringReader(s));
字符串s中有3段类似的    
<add name="PS.Entity.Properties.Settings.popular_netConnectionString"
    connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Popular.NET\\bin\\popular.net.mdb"
  providerName="System.Data.OleDb" />问题是:
如何把他们拆开后放到3个参量。或者放到下面这个东东里面去?(这个东东我不懂)
Dictionary<string, ConnectionStringSettings> _connectionStringSettingsCollection;现在能取出属性里面的值,可是属性名字出不来。问了好多问题,都无人解答。分都被套住了。不够可以加。

解决方案 »

  1.   

    XmlDocument doc = new XmlDocument();
    doc.LoadXml(s);
    XmlNodeList nodelist = doc.GetElementsByTagName("节点名称...");   foreach(XmlNode node in nodelist)
       {
            node.Attributes["属性名"].Value;
            //node.Attributes 是一个集合,可以获取属性名
        }
      

  2.   

    现在能取出属性里面的值,可是属性名字出不来。
    -----
    没明白啥意思
    XmlDocument doc = new XmlDocument();
    doc.LoadXml(s);
    XmlNodeList nodes = doc.SelectNodes("/configuration/connectionStrings/add");
    if (nodes != null)
    {
        foreach(XmlElement xe in nodes)
        {
            Console.WriteLine(xe.GetAttribute("name"));
            Console.WriteLine(xe.GetAttribute("connectionString"));
            Console.WriteLine(xe.GetAttribute("providerName"));
        }
    }
      

  3.   

    如果你想直接取出来其中的一个节点
    那你就
    XmlDocument doc = new XmlDocument();
    doc.LoadXml(s);
    XmlNode node = doc.SelectSingleNode("/configuration/connectionStrings/add[@name='XXXXX']");
    if (node != null)
    {
        Console.WriteLine((node as XmlElement).GetAttribute("name"));
        Console.WriteLine((node as XmlElement).GetAttribute("connectionString"));
        Console.WriteLine((node as XmlElement).GetAttribute("providerName"));
    }
      

  4.   

    谢谢楼上的使用: Console.WriteLine((node as XmlElement).GetAttribute("name"));
    只能读出name属性=的值,我想要GetAttribute(0)得到这个属性的值,而且还要判断索引为一的该属性的名字是什么。比如这里是"name"