【发布时间】:2012-12-21 20:54:01
【问题描述】:
我必须从文本中去除一些 XML 标记并保留它们的值。
例子
text text <tag>tag_value</tag> text text <a href="example.com">example.com</a>
->
text text tag_value text text example.com
到目前为止,我使用了 boost_replace,但现在我无法使用该库。
std::string src(text);
std::string fmt ="";
std::string ex = "(<tag attribute=\"(.*?)\">)|(</tag>)|(<a href(.*?)\">)|(</a>)|(<tag>)|(</tag>))";
boost::regex expr(ex);
std::string s2 = boost::regex_replace(src, expr, fmt, boost::match_default | boost::format_all);
我该如何解决这个问题?哪个图书馆可以帮助我做到这一点?谢谢
【问题讨论】:
-
如果您不能使用 Boost,您选择库的标准是什么(例如哪些库也是不可接受的)?
-
只是“轻量级”是可以接受的
-
Boost 有什么不可接受的地方?在最终的可执行文件中,您将只拥有您实际使用的 Boost 部分,这是您真正应该关心的全部。您不必让任何用户下载超过 600 MB 的文件,以便他们拥有“所有的 Boost”。
-
公平地说,我的工作场所也禁止了 Boost,因为它“不是轻量级的”。当您在一个单一的捆绑包中分发这么多资源并且不容易分离时,这很容易获得声誉。
标签: c++ xml replace tags strip