这里我有一个配置文件,我正在读取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();
传递主机值,如果主机值与配置中的元素匹配,它应该读取并获取该元素。
有什么建议吗?
答案 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
}
}
}
希望它有所帮助!