2012-02-08 60 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 2012-02-08 19:28:21

回答

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