XmlTextReader reader = new XmlTextReader(Window1.cfg.FSAddress);
bool[] startreading = {false , false};
while (reader.Read())
{
switch (reader.NodeType)
{
case XmlNodeType.Element: // Узел является элементом.
if (startreading[0])
{
if (reader.Name == "add")
if (startreading[1])
{
id2.Text = reader.GetAttribute(1);
return;
}
else
{
id1.Text = reader.GetAttribute(1);
startreading[1] = true;
startreading[0] = false;
}
}
else
if (reader.Name == "connectionStrings")
startreading[0] = true;
break;
case XmlNodeType.EndElement:
if (startreading[1])
if (reader.Name == "add")
startreading[0] = true;
break;
}
}
我先拿一个但是...然后发生了一些奇怪的事情,我错过了第二个
对不起我的英语。顺便说一句 - 我不是从网络项目中得到它。
答案 0 :(得分:2)
您可以使用ConfigurationManager.ConnectionStrings
从web.config
文件的连接字符串部分读取连接字符串。
或者您可以使用ConfigurationManager.GetSection
从配置文件中获取一个部分。如果它是预定义的部分,您可以将其强制转换为此类型,或者您可以实现自己的自定义部分(有关示例,请参阅System.Configuration.ConfigurationSection
)。
哦,是的......你必须将System.Configuration
包含在你的引用中才能使用这些类。
答案 1 :(得分:2)
为什么要使用基于SAX的方法来读取配置文件?这些通常可以忽略不计,因此将整个文档加载到XmlDocument
然后使用XPath遍历它将是一个更好的解决方案。
答案 2 :(得分:1)
为什么要这么努力?
使用此: ConfigurationManager.ConnectionStrings
这是ConnectionStrings的集合
使用ConfigurationManager.ConnectionStrings['nameOfTheConnectionString'].ConnectionString()
访问字符串本身。
ConfigurationManager
位于System.Configuration
命名空间
答案 3 :(得分:1)
我不知道你要做什么。但也许XPath比SAX容易得多。