【问题标题】: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
}

如何在给定路径创建具有值的节点?

【问题讨论】:

标签: c# xml xpath xmlnode selectsinglenode


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-01
    • 1970-01-01
    相关资源
    最近更新 更多