【发布时间】:2013-09-09 18:28:34
【问题描述】:
有谁知道在 C# 中检查字符串是否可解析为 XML 的快速方法?最好是快速、低资源的东西,无论它是否会解析,它都会返回一个布尔值。
我正在开发一个数据库应用程序,它处理有时存储为 XML 的错误,有时不是。因此,我希望能够非常快速地测试我从数据库中获取的字符串(包含在 DataTable 中)......并且不必求助于任何 try / catch {} 语句或其他 kludges......除非这些是实现它的唯一方法。
【问题讨论】:
-
不幸的是,在您全部阅读之前,您无法知道某些文本是有效的 XML。你得到的每一个解决方案都将是它的变体。不过,您可以找到对格式错误的 XML 负责的人,并给他们一个 XML Bozo Certification。
-
如果这是您的瓶颈,那么您能做的最好的事情就是完全放弃以 XML 格式存储内容并使用二进制格式的想法。此外,不要存储虚假值,而是以一种无需复杂分析即可立即识别类型的方式组织它。
-
@SargeBorsch 存储机制不取决于我(仅我所在楼层就有十几个开发人员);当应用程序崩溃时,错误会记录在数据库中,有时作为 XML(堆栈跟踪),有时只是一条消息。目前,我正在使用 Linq 语句将 XML 解析为更易读的格式,因为简单地将其“按原样”输出到 TextBox 有点混乱。然而,在我写完这部分之后,我开始意识到(如前所述)并非所有错误都在 XML 中,这导致 Linq 尖叫。我想我只是想要一种快速的方法来确保 Linq 可以解析 XML。