【问题标题】:How to set attribute to an XmlNode object which is not set to an instance or object. c#如何将属性设置为未设置为实例或对象的 XmlNode 对象。 C#
【发布时间】:2018-09-17 12:46:02
【问题描述】:

我不知道如何将默认值设置为XmlNode

我有一个名为RequirementMinTimeXmlNode,当该节点不在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


【解决方案1】:

解决办法

    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");
    }

【讨论】:

    【解决方案2】:

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

    if (GlobalNode.SelectSingleNode("MinTimeMs") == null)
    {
        RequirementMinTime = xmlDoc.CreateElement("MinTimeMs");
        RequiredMinTime.Value = "0";
    }
    else
    {
        RequirementMinTime = GlobalNode.SelectSingleNode("MinTimeMs");
    }
    

    【讨论】:

    • 我收到错误“无法将'System.Xml.Linq.XElement'隐式转换为'System.Xml.XmlNode'”
    猜你喜欢
    • 1970-01-01
    • 2011-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-25
    • 2016-06-09
    • 1970-01-01
    相关资源
    最近更新 更多