我正在尝试为 XML 文档制作 XML 解析器,其中节点中有一些可选属性,我正在寻找一种优雅的方式,如何解决“对象引用未设置为实例”的问题。我读过这个主题,它非常相似,下面的代码看起来很有希望:
string text = (string) foo.Element("Text") ?? "Default value";
但是,当我尝试实现它时,仍然出现“对象引用未设置为实例”,因此我正在寻找另一种解决方案。这是我拼命努力的一部分。
XML 文件 1:
...
<Message id ="1" appendix = "abc" ></Message>
...
XML 文件 2:
...
<Message id ="2" ></Message>
...
我的解析器(为文件夹中的每个文件循环调用):
public MyNode Parse(string file)
{
XmlDocument xDoc = new XmlDocument();
xDoc.Load(file);
MyNode node = new MyNode();
node.messageID = (string)xDoc.GetElementsByTagName("Message")[0].Attributes["id"].Value ?? "NULL";
node.appendix = (string)xDoc.GetElementsByTagName("Message")[0].Attributes["appendix"].Value ?? "NULL";
return node;
}
你能帮帮我吗?