评估XML查找错误字符

本文关键字:字符 错误 查找 XML 评估 | 更新日期: 2023-09-27 18:19:32

我的c#控制台应用程序中有一些来自远程(Java)web服务的XML,它是通过存储过程写入Microsoft SQL Server XML列的。有时XML在某个地方有一个不好的特性,SQL Server没有提供足够的信息来说明问题的确切位置

我想在数据库写入之前评估XML,当然我没有XSD。

在写入数据库之前,评估XML每一部分的"规则一致性"的好方法是什么?我使用的是.NET 4.0,C#。

谢谢。

评估XML查找错误字符

如果有可能,我建议对您在第三方服务中检索到的所有XML数据进行XML架构验证。

Xml架构验证将确保Xml文档的每个元素都对其定义的约定有效。

您应该考虑使Xml架构验证成为可选的,因为它会引入您可能希望在生产环境中防止的开销。但在开发和测试环境中,从所有第三方服务中获取详细的验证错误信息可能非常有益。

您可以尝试清理xml,这可能会有所帮助:http://seattlesoftware.wordpress.com/2008/09/11/hexadecimal-value-0-is-an-invalid-character/

这个链接实际上只帮助过滤无效字符,大多数时候,这是不够的,也没有帮助(但为了安全起见,我仍然建议过滤未知字符)。

我认为为了检查标签是否有效,可以使用try-catch。如果try-catch在第1行返回问题,那么问题可能是xml中没有根元素?或者可能是您对xml文档的编码不正确。它们应该返回不同的错误。