是否可以将呈现的HTML页面转换为纯文本,甚至是格式化文本?
例如,以下HTML页面/代码:
<html>
<head></head>
<body>
<p>This is the first paragraph</p>
<ol>
<li>This is a list item</li>
<li>And another</li>
</ol>
<p>This is the second paragraph</p>
</body>
</html>
将转换为以下字符串值:
“
这是第一段
- 这是一个列表项
- 另一个
醇>这是第二个parapgrah
“
如果是这样,我怎么能这样做?我可以使用像webbrowser这样的内置对象来访问呈现的内容吗?
修改
解决方案:似乎没有任何内置方法可以将呈现的HTML代码转换为纯文本。你必须得到一些第三方工具来为你做,或建立自己的。对于第三方工具解决方案,请查看下面评论中的第一个链接。
额外信息:
对于我的问题,我基本上将RTF文档转换为HTML。我正在使用一个库来执行此操作,可在此处找到:Writing your own RTF Converter
但是,此库不会考虑缩进列表...例如,使用此转换器,此RTF内容:
- 一些文字
- 醇>
更多文字
一个。子文本
在HTML转换版本中成为:
- 一些文字
- 更多文字:
- 子文字
醇>
为了解决这个问题(因为图书馆的作者似乎没有兴趣解决这个问题),我决定在内容转换后执行我自己的替换。为此,我需要将原始RTF文本与HTML RENDERED文本进行比较,以查看子弹编号是否匹配。这就是为什么我想要一种简单的方法将呈现的HTML内容转换为字符串...然后我可以根据需要解析列表项,并将它们的标题与RTF标题进行比较。
似乎我必须手动解析转换后的HTML中的任何OL和UL标记,并自己为每个LI条目分配一个值,以便根据RTF版本检查结果。
感谢所有为此答案做出贡献的人。
答案 0 :(得分:0)
使用jQuery,
function htmlStripTags(value) {
return $("<div/>").html(value).text();
}
function htmlDecode(value) {
return $("<textarea/>").html(value).text();
}
function htmlEncode(value) {
return $('<textarea/>').text(value).html();
}
jQuery将在内存中创建“&lt; div /&gt;”标签。它将删除html标签,只留下文本。注意:使用“&lt; textarea /&gt;”将保留html标签。