【问题标题】:Convert HTML to Plain Text while preserving P, BR, UL, OL?在保留 P、BR、UL、OL 的同时将 HTML 转换为纯文本?
【发布时间】:2012-01-15 05:05:45
【问题描述】:

在从 HTML 文本导出到 Excel 工作表期间,我试图保留基本格式,例如 HTML 换行符(<br><p>)、列表(<ol><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>

示例输出:

This is a test.

This is another
test.

- 10
- 20
- 30

End.

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

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

因此我的问题是:

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

2013 年 5 月 10 日更新

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

【问题讨论】:

    标签: c# html string html-parsing


    【解决方案1】:

    你能不能自己通过替换来做到这一点:

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

    然后用正则表达式去掉 HTML 的其余部分?它似乎可以实现您想要的示例输出。当然,有人可能有一个更优雅的解决方案。 =)

    【讨论】:

    • 谢谢@Jon,我现在正在做类似的事情!
    【解决方案2】:

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

    【讨论】:

    • 谢谢,@Paul。实际上,我确实 not 想要允许任何 HTML 标记,但我更希望删除所有 HTML 标记的纯 HTML,并用它们的纯文本等效项替换好的标记。我正在更新我的问题。
    • 加 1,我在这个页面上寻找这个,我需要消毒剂。
    猜你喜欢
    • 2015-03-11
    • 1970-01-01
    • 1970-01-01
    • 2011-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-12
    相关资源
    最近更新 更多