我们在数据库中保存收到的电子邮件。 然后我们保存一个版本,删除所有html标签。 这个问题是如果邮件包含这样的表:
Heading1 Heading2
column1 column2
删除标签后,它看起来像这样标题1
Heading2
列1
列2
是否有一种简单的方法来获取html表并将其转换为纯文本,但格式化仍然完好无损。至少在正确的位置使用换行符
所以表变成了这样的东西: Heading1 Heading2 \ r \ n column1 column2 \ r \ n。 或类似的东西。
有什么想法吗?
答案 0 :(得分:2)
一个简单的方法?并不是的。 HTML表格很复杂,可以有行跨度和列跨度,更不用说普通的HTML属性,如双向文本。像display: table-cell;
这样的CSS属性也会导致普通的HTML突然变成表格。
但是,如果您不太关心格式化并且只想将多个列输出到同一行,您可以使用类似JTidy或Jericho的内容解析HTML,然后输出多个<td>
或<th>
标记,在它们之间放置空格,当您结束<tr>
元素时,可以输出"\r\n"
。
如果您真的不想解析HTML,则可以使用单个空格或标签替换<td>
和<th>
标记,并使用换行符替换<tr>
。这可能会给你至少一些合理的结果。