我在用
XDocument doc = XDocument.Parse(somestring);
但是我如何验证字符串somestring
是否是格式良好的 XML。这Try Catch
是唯一的方法吗?
Try Catch 是唯一的方法吗?
没有TryParse
方法XDocument
,所以try-catch
可能是最好的选择。还要考虑根据模式验证您的 XML,因为它不仅会检查 XML 是否格式正确,还会检查约束。
如果只需要检查文档是否格式正确,最快的方法是使用XmlReader,如下:
var isWellFormedXml = true;
try
{
using (var reader = XmlReader.Create(stream)) // can be a mem stream for string validation
{
while (reader.Read()) {}
}
}
catch
{
isWellFormedXml = false;
}
这样您就不会为 XDocument DOM 花费内存。顺便说一句,XDocument.Parse() 使用 XmlReader 来处理 XML,所以异常是相同的,如果您需要分析它们。