如何将属性设置为未设置为实例或对象的XmlNode对象。 C#

问题描述 投票:0回答:2

我无法弄清楚如何将默认值设置为XmlNode

我有一个名为XmlNodeRequirementMinTime,当该节点不在xml文档中时,我想将其设置为值“0”。这是我正在尝试的代码不起作用。

        XmlReader reader = XmlReader.Create(xmlpath, settings);
        XmlDocument doc = new XmlDocument();

        doc.Load(reader);

       if (GlobalNode.SelectSingleNode("MinTimeMs") == null)
        {
            RequirementMinTime.Attributes["MinTimeMs"].Value = "0";
        }
        else
        {
            RequirementMinTime = GlobalNode.SelectSingleNode("MinTimeMs");
        }

我在if语句中收到以下错误

“System.NullReferenceException:'对象引用未设置为对象的实例。'”

这是对象声明:

    public static XmlNode RequirementMinTime
    {
        get;
        set;
    }
c# xml xmldocument xmlnode
2个回答
0
投票

这是解决方案

    XmlReader reader = XmlReader.Create(xmlpath, settings);
    XmlDocument doc = new XmlDocument();

    doc.Load(reader);

   if (GlobalNode.SelectSingleNode("MinTimeMs") == null)
    {
        XmlNode newNode = doc.CreateNode(XmlNodeType.Element, "MinTimeMs", "");
        newNode.InnerText = "0";
        GlobalNode.AppendChild(newNode);    
        RequirementMinTime = GlobalNode.SelectSingleNode("MinTimeMs");
    }
    else
    {
        RequirementMinTime = GlobalNode.SelectSingleNode("MinTimeMs");
    }

0
投票

你需要创建节点,否则你不能设置一个值(假设你的XmlDocument被命名为xmlDoc

if (GlobalNode.SelectSingleNode("MinTimeMs") == null)
{
    RequirementMinTime = xmlDoc.CreateElement("MinTimeMs");
    RequiredMinTime.Value = "0";
}
else
{
    RequirementMinTime = GlobalNode.SelectSingleNode("MinTimeMs");
}
© www.soinside.com 2019 - 2024. All rights reserved.