C ++:从字符串中删除所有HTML格式?

我有一个字符串,可能包括br或span … / span标签或其他HTML字符/实体。 我想要一个强大的方法来剥离所有这些并获得剩余的UTF-8字符。 理想情况下,这应该是跨平台的。

这样的事情是理想的:

http://snipplr.com/view/15261/python-decode-and-strip-html-entites-to-unicode/

但这也删除了标签。

您的要求有多严格? 一个简单的两国FSA应该做。 从READCHAR状态开始。 每当你在该状态下读取’<'时,转换到READTAG状态; 否则,将字符写入结果字符串。 每当您处于READTAG状态并读取“>”时,转换回READCHAR状态。

编辑:哎呀。 错过了关于实体的部分。 你也会因此获得READENTITY状态。 当您转换它时,您还可以将代码转换为相应的UTF-8字符。

我不清楚你想要什么。

输入:这是一个字符串

文字和许多行“

应该输出:

1) This is a string 

of text & on many lines " (Replace & with & and " with ") 2) This is a string of text & on many lines "

您想简单地删除元素,还是将HTML转换为纯文本?

选项1:

如果您只想删除所有出现的内容,可以使用正则表达式搜索和替换。

选项2:

如果您真正想要做的是获取具有格式的页面并将其转换为纯文本,我能想到的最简单和最健壮的方法是使用浏览器或某些浏览器引擎来实际解析HTML和从中提取文本。

IOW,这相当于将网页从浏览器复制到剪贴板,然后将其粘贴到记事本中。