1

我有 XHTML 文件,其来源不完全有效,它不遵循 XML 文档的 DTD。

就像在某些地方"使用&Idquo;for 或使用撇号一样’。这会导致我的 C# 代码出现异常。

那么有什么方法或任何网络链接可以用来摆脱这个吗?

4

3 回答 3

4

如果文件格式正确,您可以在自己的 DTD 中定义字符实体。

如果文件格式不正确,CodePlex 的HTML Agility Pack将对其进行解析。

于 2009-05-08T18:27:48.090 回答
1

您可以将文档解析为 HTML,因为它们都以 DOM 结尾,而 HTML 解析器嘲笑这些三色堇引号问题。按照 unknown 的 HTML Tidy 想法,您可以将 DOM 序列化回有效的 XHTML 文件。(这与使用 HTML Tidy 相同,无论如何都可能使用 HTML 解析器,除非您以编程方式从 C# 中执行此操作。)

于 2009-05-08T18:24:27.193 回答
0

好吧,根据 XML 的性质,它必须是有效的,否则它根本不会呈现。我首先看看它使用 W3C 的验证器http://validator.w3.org/生成的错误类型

还可以考虑使用 HTML tidy,它也可以配置为修复 XML。

我们使用 hpricot 来修复我们的 XML,但我们又在构建 rails 应用程序。不确定C#

于 2009-05-08T18:12:36.987 回答