如果选择单个节点为空,则创建单个节点

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

【讨论】:

以上是关于如果选择单个节点为空,则创建单个节点的主要内容,如果未能解决你的问题,请参考以下文章

二叉树使用前序中序后续查找指定节点(详解)

二叉树删除节点详解

[学习记录]二叉树删除

JCR 创建单个文件,从不同节点链接

给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。

二叉排序树