我无法弄清楚如何将默认值设置为XmlNode
。
我有一个名为XmlNode
的RequirementMinTime
,当该节点不在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;
}
这是解决方案
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");
}
你需要创建节点,否则你不能设置一个值(假设你的XmlDocument
被命名为xmlDoc
:
if (GlobalNode.SelectSingleNode("MinTimeMs") == null)
{
RequirementMinTime = xmlDoc.CreateElement("MinTimeMs");
RequiredMinTime.Value = "0";
}
else
{
RequirementMinTime = GlobalNode.SelectSingleNode("MinTimeMs");
}