我仍然习惯于使用 XML 文件。我一直在网上查看一些示例,并且对缺乏错误处理感到震惊。
最常见的错误类似于el.Attributes["name"].Value
. 由于 XML 是人工可编辑的,因此该属性可能会丢失。并且尝试引用该Value
属性null
会引发异常。其他问题与数据不符合预期格式有关。
所以我开始按照以下思路编写一些辅助扩展方法:
public static class XmlHelpers
{
public static string GetValue(this XmlAttribute attr, string defaultValue = "")
{
if (attr != null)
return attr.Value;
return defaultValue;
}
public static bool GetValueBool(this XmlAttribute attr, bool defaultValue = false)
{
bool value;
if (bool.TryParse(attr.GetValue(), out value))
return value;
return defaultValue;
}
}
我知道这会奏效。但我错过了什么吗?是否XmlDocument
已经提供了使此类东西变得不必要的功能?我只是想知道其他人是如何处理这个问题的。
我意识到许多 XML 文件从未被人类编辑过。而且,出于这个原因,许多人可能只是编写假设不会有错误的代码。如果有错误,那么就有异常。我可以理解。但如果文件是由人类编辑的,我希望给我的应用程序更多的灵活性,并且某些内容的格式不正确。