2011-01-14 6 views
0

私の.netアプリケーションに含まれていないapp.configファイルを変更しようとしています。 他のアプリケーションがこれらの値を1行ずつ読み込み、データベース(n)の値をサーバー(n)の値と関連付けているため、自分のキーを一意にして静的キー(Server1またはServer2)の下に表示する必要があります。別のアプリケーションapp.configのキー値のペアを更新する

外部の.configファイルに対して標準のapp.configメソッドを使用する方法がわからないので、Xmlドキュメントクラスを使用しています。

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") 

しかし、キーをretrivingする方法を見つけることができませんそれが存在するかどうかを確認するより重要なことに、値を増やしますか?

ありがとうございました。

答えて

1

私はあなたがすでに正しい道にいると思います。あなたは既にキーで要素をつかむ方法を探しているので、増分してそこにあるかどうかを調べることができます。

ここで、あなたが話している構造を考えてみましょう。「NextSibling」メソッドを使用して要素を調べ、見つかったアイテムを追跡する方がよいでしょう。キーは重要です。

関連する問題