Конвертировать HTML в обычный текст, используя c ++ - PullRequest
0 голосов
/ 09 марта 2010

Я делаю приложение для разбора почты, которое требуется для преобразования HTML-файла в обычный текст. В связи с этим я нашел несколько сценариев, которые делают преобразование. Я хочу сделать то же самое в C ++.

Поэтому, пожалуйста, предложите мне любые кросс-платформенные и открытые библиотеки C ++ для преобразования HTML в обычный текст.

Спасибо заранее С уважением Субби

Ответы [ 5 ]

3 голосов
/ 27 ноября 2011

Попробовав несколько вариантов, я думаю, что более простой способ сделать это в больших масштабах - использовать elinks.

в Ubuntu:

sudo apt-get install elinks
elinks -dump a.html > a.txt
0 голосов
/ 31 января 2018

Выкладываю версию c ++ для Windows , которая изначально пришла от решения @Ben Anderson's C # . Обратите внимание, код еще не достаточно надежен. Также все начальные и конечные символы новой строки будут обрезаны.

// The trimming method comes from https://stackoverflow.com/a/1798170/1613961
wstring trim(const std::wstring& str, std::wstring& newline = L"\r\n")
{
    const auto strBegin = str.find_first_not_of(newline);
    if (strBegin == std::string::npos)
        return L""; // no content

    const auto strEnd = str.find_last_not_of(newline);
    const auto strRange = strEnd - strBegin + 1;

    return str.substr(strBegin, strRange);
}

wstring HtmlToText(wstring htmlTxt) {

    std::wregex stripFormatting(L"<[^>]*(>|$)"); //match any character between '<' and '>', even when end tag is missing

    wstring s1 = std::regex_replace(htmlTxt, stripFormatting, L"");
    wstring s2 = trim(s1);
    wstring s3 = std::regex_replace(s2, std::wregex(L"\\&nbsp;"), L" ");
    return s3;
}
0 голосов
/ 09 марта 2010

Взгляните на html2text . Это командный инструмент, а не чистый lib, но содержит код, который разбирает и конвертирует HTML Таким образом, вы должны быть в состоянии использовать его.

0 голосов
/ 09 марта 2010

Как бы ни было «очевидно», вы можете просто оставить весь текст между > & <

0 голосов
/ 09 марта 2010

Попробуйте использовать регулярное выражение, извлекающее теги html и сохраняющее результат как текст файла. Но это не просто. Используйте этот класс справки DEELX - Механизм регулярных выражений .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...