将HTML转换为纯文本,同时保留P,BR,UL,OL?

时间:2011-12-07 17:14:32

标签: c# html string html-parsing

在从HTML文本导出到Excel工作表期间,我正在尝试保留基本格式,例如HTML换行符(<br><p>),列表(<ol>,{{ 1}})等。

示例输入:

<ul>

示例输出:

<p>This is a test.</p>
<p>This is another<br>test.</p>

<ul>
    <li>10</li>
    <li>20</li>
    <li>30</li>
</ul>

<p>End.</p>

来自着名的NirSoft家伙的免费实用程序HTMLAsText似乎正是我想要的,不幸的是它没有源代码:

enter image description here

即使在检查了约。 Stack Overflow上有20个类似的问题,并且谷歌浏览了几个小时,我能找到的最接近的是this Code Project article

我的问题是:

是否有人知道可以在保留基本格式的同时将HTML转换为纯文本的类/库?

更新2013-05-10

我最终得到了一个函数see the full code over at Pastebin

2 个答案:

答案 0 :(得分:4)

你能不能自己替换:

<br /> with Environment.NewLine
</p> with Environment.NewLine + Environment.NewLine
<li> with " - ".

然后用正则表达式删除剩下的HTML?它似乎实现了你想要的示例输出。当然,有人可能会有更优雅的解决方案。 =)

答案 1 :(得分:3)

您是否尝试过使用this one并将“允许的标签”设置为您想要的标签?