2011-01-14 2 views
0

내 .net 응용 프로그램에 포함되지 않은 app.config 파일을 수정하려고합니다. 다른 키는 데이터베이스 (n) 값과 서버 (n) 값을 연결하여 한 줄씩 다른 값을 읽으므로 내 키가 고유해야하며 정적 키 (Server1 또는 Server2) 아래에 있어야합니다.다른 응용 프로그램 app.config 키 값 업데이트

외부 .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") 

을하지만 키를 가져 오는 중 오류의 방법을 찾을 수 없습니다 그것이 존재하는지 확인하기 위해 더 중요한 것은 값을 증가시키는 것입니까?

감사합니다.

답변

1

당신이 이미 올바른 길을 가고 있다고 생각합니다. 열쇠로 요소를 잡는 방법을 이미 찾고 있기 때문에 증가시킬 수 있고 그것이 있는지 확인할 수 있습니다.

이제 구조에 대해 말하면, "NextSibling"메서드를 사용하여 요소를 탐색하고 발견 한 항목을 추적하는 것이 더 좋을 수 있습니다. 열쇠는 중요합니다.

관련 문제