使用XDocument.Parse时检查“Root Element is missing”?

时间:2011-01-31 08:56:27

标签: error-handling webclient linq-to-xml

我想听听,当你使用XDocument.Parse()时,你如何检查" Root元素缺失"目前,我正在使用try-catch来捕捉错误,但是我想听听,如果你们中有人有更聪明的方法去做 - 个人而言,我想要避免错误,而不是缓存它们。

我应该澄清一下,我解析的字符串是从WebClient.DownloadString(...);返回的,因此,我不是自己创建XML。

最好的问候。

1 个答案:

答案 0 :(得分:0)

try / catch异常处理在.NET框架中是完全正常和通常的编程风格。 XML具有严格的语法规则,XML解析器在解析标记时会检查这些规则,因此您需要准备好处理任何解析错误,try / catch是正确的工具。

您还没有说过是否控制了传递给XDocument.Parse的字符串参数的创建。如果你不控制它,那么你无法避免错误。如果你控制然后确保你不使用字符串连接或StringBuilders来构造带有XML的字符串,而是确保你使用像XmlWriter这样的XML API,那么你将获得格式良好的XML标记,否则你在构造时会遇到任何错误标记,而不是解析它。但是,使用try / catch最好处理XmlWriter引发的任何错误。