如何在将大HTML转换为Word 2007时处理内存不足异常

时间:2011-05-21 21:44:22

标签: c#

我有一个.NET Windows服务,它接受HTML内容并从中生成Word 2007文件。现在,在将内容转换为Word 2007文档之前,通过递归函数清除HTML内容(删除空标记等)。但是,由于递归函数,有一些大的HTML内容会产生“内存不足”异常。我在方法上放置了一个重试计数器,这样函数的调用次数不会超过计数器次数。但是,这导致许多HTML文件无法转换或转换为错误的Word 2007内容。

如果我尝试将HTML源代码分开处理,可能会因为每个HTML结构不同而复杂化,分割内容可能会导致更改清理代码。

需要一些有关如何处理此问题的建议。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

不要使用递归。试试HTML Agility Pack

这是一个通常推荐的HTML解析器。它将采用格式错误的HTML并按摩它为XHTML,然后是可遍历的DOM,如XML类。

答案 1 :(得分:0)

您可以尝试使用try ... catch语句将最外层调用包装到递归函数以捕获OutOfMemoryException。这至少会让你继续下一个文件。