【发布时间】:2012-03-26 08:12:56
【问题描述】:
我正在编写一些在运行时加载 xml 文件的代码。目前,我们正在使用 XmlDocument 类型来读取 xml 文件并在 SelectSingleNode 语句周围包装一个 try-catch (这是在节点为空的情况下完成的,或者在我们解析用户时不存在创建的 xml 文件)。
请注意:我知道 XmlDocument 已被 XDocument 取代。但是,由于我们使用的是 .NET 版本 3(according to this MSDN document XDocument 在 .NET 3 中不可用),所以我们现在必须坚持使用 XmlDocument。我们使用 .NET 3 的原因有很多(其中一些与规范相关)。
这是我们目前正在做的一个例子:
private void LoadUserXMLFile ()
{
XmlDocument xDoc = new XmlDocument();
XmlTextReader reader = new XmlTextReader(fileName);
reader.Read();
xDoc.Load(reader);
try { firstElementString = xDoc.SelectSingleNode(<path to node>).InnderText);
catch { <exception handling here > }
//more SelectSingleNode statements, each wrapped inside
//individual try-catch blocks
}
显然上面是一个例子,我已经简化了catch语句。
我已经为用户生成的 XML 文件编写了一个架构,这个应用程序将使用它,我想知道我是否在解析 XML 文档期间(以某种方式)使用了架构,我是否还需要包装每个SelectSingleNode 与 try-catch 语句?
在解析过程中是否可以(以某种方式)使用模式来检查 XML 文档是否具有正确的格式和所有必需的元素?
【问题讨论】: