如果选择单个节点为空,则创建单个节点
Posted
技术标签:
【中文标题】如果选择单个节点为空,则创建单个节点【英文标题】:Create single node if select single node is null 【发布时间】:2012-02-08 18:22:27 【问题描述】:我有一个更新配置文件的程序。例如,配置文件可能包含:
<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;
现在,在更新期间,我想更新电话号码和地址。地址可能在也可能不在在配置文件中。
如果 SelectSingleNode 为空,我想用给定的路径创建一个节点并设置它的值。
XmlNode addressNode = theConfig.SelectSingleNode("configuration/userSettings/setting[@name='address']");
if(addressNode == null)
//..Create the node here
如何在给定路径创建具有值的节点?
【问题讨论】:
这是重复的吗? ***.com/questions/508390/… 【参考方案1】: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
【讨论】:
以上是关于如果选择单个节点为空,则创建单个节点的主要内容,如果未能解决你的问题,请参考以下文章