我正在尝试修改不属于我的.net应用程序的app.config文件。 我的密钥需要是唯一的,并且出现在静态密钥(Server1或Server2)下,因为另一个应用程序逐行读取这些值,将数据库(n)值与服务器(n)值相关联。
我看不到对外部.config文件使用标准app.config方法的方法,所以我使用的是Xml Document类。
示例XML文件:
<add key="server1" value="SERVER\SQL2000" />
<add key="database1" value="ggfd" />
<add key="database2" value="dvdv" />
<add key="server2" value="SERVER\SQL2005" />
<add key="database3" value="trvs" />
<add key="database4" value="tgdfs" />
<add key="database5" value="trvs" />
我可以阅读\写新节点:
Dim MyKey As String = "database" & No?
Dim XmlDocument As New XmlDocument
Dim XmlNode As XmlNode
Dim XmlRoot As XmlNode
Dim XmlKey As XmlNode
Dim XmlValue As XmlNode
Save_Config_Parameter = ""
XmlDocument.Load("app.config")
XmlNode = XmlDocument.DocumentElement.SelectSingleNode("/configuration/appSettings/add[@key=""" & MyKey & """]")
If XmlNode Is Nothing Then
XmlNode = XmlDocument.CreateNode(XmlNodeType.Element, "add", "")
XmlKey = XmlDocument.CreateNode(XmlNodeType.Attribute, "key", "")
XmlKey.Value = MyKey
XmlNode.Attributes.SetNamedItem(XmlKey)
XmlValue = XmlDocument.CreateNode(XmlNodeType.Attribute, "value", "")
XmlValue.Value = MyValue
XmlNode.Attributes.SetNamedItem(XmlValue)
XmlRoot = XmlDocument.DocumentElement.SelectSingleNode("/configuration/appSettings")
If Not XmlRoot Is Nothing Then
XmlRoot.AppendChild(XmlNode)
Else
Save_Config_Parameter = "ERROR"
End If
Else
XmlNode.Attributes.GetNamedItem("value").Value = MyValue
End If
XmlDocument.Save("app.config")
但是找不到一种方法来检索Key以检查它是否存在,更重要的是增加值?
感谢。
答案 0 :(得分:1)
我认为你已经走在了正确的道路上。您正在寻找按键抓取元素的方法,因此您可以增加并查看它是否存在。
现在,考虑到您正在讨论的结构,最好使用“NextSibling”方法遍历元素并跟踪您找到的项目,而不是查询每个键的顺序是否有详细信息很重要。