2012-02-08 9 views
0

設定ファイルを更新するプログラムがあります。例えば、設定ファイルが含まれていてもよい:単一ノードが選択されている場合、単一ノードを作成します。

<configuration> 
    <userSettings> 
    <setting name="phoneNumber" serializeAs="String"> 
     <value>123-456-7890</value> 
    </setting> 
    </userSettings> 
</configuration> 

、この設定ファイルを更新するには、私は次のようにします。

XmlNode phoneNumberNode = theConfig.SelectSingleNode("configuration/userSettings/setting[@name='phoneNumber']"); 
phoneNumberNode.FirstChild.InnerText = this._cloudPublisherWebURL; 

、私はにphoneNumberとアドレスを更新するアップデート中。アドレスは、設定ファイル内でである場合とそうでない場合があります。

SelectSingleNodeがnullの場合、指定されたパスでノードを作成し、その値を設定します。

XmlNode addressNode = theConfig.SelectSingleNode("configuration/userSettings/setting[@name='address']"); 
if(addressNode == null) 
{ 
    //..Create the node here 
} 

どのようにノードを指定したパスに作成できますか?

+0

これは重複していますか? http://stackoverflow.com/questions/508390/create-xml-nodes-based-on-xpath/509340#509340 – xcud

答えて

0
XmlNode addressNode = theConfig.SelectSingleNode("configuration/userSettings"); 
XmlNode setting = addressNode.Item(0).SelectSingleNode("configuration/userSettings/setting[@name='phoneNumber']"); 

setting.SetAttribute("name", "address"); //this is to change the name attribute value into address 
関連する問題