c# - 解析 XML/XHTML 文档但忽略 C# 中的错误

标签 c# xml

我正在编写一些小应用程序来解析一些网页的源代码、提取一些数据并将其保存为另一种格式。具体来说,我的一些银行不提供交易/报表的下载,但他们在其网站上提供对这些报表的访问。

我做的很好,但另一个(HSBC UK)被证明是一个麻烦,因为它的源不是有效的 XHTML。例如 <?xml?> 之前有空格标签,还有一些地方 ==使用而不是 =在属性名称和它的值之间(例如 <li class=="lastItem"> )。

当然,当我将此数据传递到我的 XmlDocument 时,它会抛出一个不稳定的(更准确地说是一个异常)。

我的问题是:是否可以放宽 C# 中对 XML 解析的要求?我知道从源头上解决这些问题要好得多 - 这绝对也是我的态度 - 但汇丰银行改变他们的网站的可能性几乎为零,该网站已经在大多数浏览器中运行,只是为了我这个小老头。

最佳答案

看看 HTML agility pack .它允许您通过 XPath 提取不符合 XHTML 的网页的元素,就好像它是一个格式良好的 XHTML 文档一样。

看在 Kleene 的份上,不要尝试用任何复杂的方式对 HTML 页面进行正则表达式!

关于c# - 解析 XML/XHTML 文档但忽略 C# 中的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/634693/

相关文章:

c# - 基本单元测试与单元测试

c# - 关闭异步连接

c# - 为什么 SqlClient 在传递 SqlXml 时使用不必要的 XML 转换?

C#:一种将单行 XML 文件转换为人类可读多行的简单方法

c# - 在 silverlight 中调用一个 aspx 页面,而不打开它

java - "MismatchedInputException: Cannot deserialize instance of ` java.lang.String ` out of START_OBJECT token"当内部标签与外部同名时

xml - 从引用元素中,获取祖先中前面元素出现的次数

java - 使用希伯来字符时出现 MalformedByteSequenceException : Invalid byte 1 of 1-byte UTF-8 sequence.

c# - 设置一个枚举等于另一个

java - 如何在 Spring Boot 中存储一个 xml 节点的多个值?