我有一个与XML格式非常接近的文档,我从外部源获取(我不能在源代码中修复它)。但是这个软件在某种程度上是一个行业标准,因此它掌握在我们的许多用户手中,而替换这些系统可能会花费我们的用户大笔费用。他们不会这样做。有时,此文档以完美格式的XML形式出现,但在某些情况下,文档在某些元素的InnerText
中包含无效文本。一个这样的例子是<=>
。我在可能是用户输入的文本字段的位置找到这些,并且源应用程序在生成XML文档时没有清理。
我有一个.net应用程序正在使用XmlReader
对象读取此文档。在大多数情况下,它会成功,因为在大多数情况下,文档是有效的XML文档。但是如果我得到一个不是XML文档的文档,它会抛出异常,原因很明显。
有人知道在加载之前将此文档转换为XML的方法吗?或者有没有办法让XmlReader
句柄错误更优雅?阻止此文档成为有效XML文档的数据对我来说实际上并不重要,可能会被丢弃。对我来说重要的任何事情都被格式化为有效的XML。
答案 0 :(得分:0)
另一个系统没有给你XML。不要将它视为无效的XML,或几乎是XML,或者在其中存在错误的XML。把它想象成YXQ。如果有人以YXQ格式向您发送数据,您首先需要掌握(或写入)YXQ的规范,然后您需要为其编写解析器,可能是将其转换为XML的解析器。也许YXQ与TagSoup或validator.nu等现有解析器处理的语言相似;你可以尝试看看,假设你有足够大的YXQ样本来使你的测试有意义。
或者,有许多人使用的非常好的标准交换格式,称为XML。它在每个可以想象的平台上都具有解析器已经存在的巨大优势。人们通过使用它来节省大量资金。为什么不向您的数据供应商推荐呢?他们可能会发现他们获得了更多的客户。