使用c#读取特定的配置元素?

时间:2014-01-28 07:42:38

标签: c# wcf configuration xmldocument

这里我有一个配置文件,我正在读取c#中的配置元素。我需要的是读取基于主机<Brand Host="localhost:64995">的所有元素。例如,如果主机是localhost:64995,我需要其中的节点,如<add Name="aaa" BrandId="13" />

这是我的配置

<SingleSignOn>
        <Brands>
          <Brand Host="localhost:64995">
          <add Name="aaa" BrandId="1" />
          </Brand>
          <Brand Host="aaaaa">
            <add Name="bbbb" BrandId="2"  />
          </Brand>
        </Brands>
      </SingleSignOn>

和我的代码

string host = GetHostUrl();
   List<ConfigurationContract> branditems = null;
   XmlDocument xdoc = new XmlDocument();
   xdoc.Load(HttpContext.Current.Server.MapPath("~/") + "SSO.config");
   XmlNode xnodes = xdoc.SelectSingleNode("configuration/SingleSignOn/Brands");
   foreach (XmlNode xnn in xnodes.ChildNodes)
   {

   }

这里我将从这个string host = GetHostUrl();传递主机值,如果主机值与配置中的元素匹配,它应该读取并获取该元素。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

foreach内,您可以使用

if (xnn.Attributes["Host"].Value == host)
{
  foreach (XmlNode i in xnn.ChildNodes) // i is the child node inside <Brand Host="localhost:64995"></Brand>
  {
    if (i.Attributes["Name"].Value == "aaa") // or even i.Attributes["BrandId"].Value == "1"
    {
       // Do your stuff
    }
  }
 }

希望它有所帮助!