2012-02-08 61 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