Ошибка компиляции htmlcxx - PullRequest
3 голосов
/ 10 мая 2011

Я пытаюсь использовать htmlcxx для разбора веб-страницы.Проблема в том, что пример не компилируемый atm.

tree<HTML::Node>::iterator it = dom.begin();
tree<HTML::Node>::iterator end = dom.end();
for (; it != end; ++it)
{
    if (it->tagName() == "A")
    {
        it->parseAttributes();
        std::cout << it->attributes("href");
        std::cout<< std::endl;
    }
}

проблема в it->attributes("href");

остальное работает нормально.но с этой строкой я получаю

ошибка: нет соответствующей функции для вызова 'htmlcxx::HTML::Node::attributes(const char [5])'

/ usr / local / include / htmlcxx / html / Node.h: 51:примечание: кандидаты: const std::map<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >& htmlcxx::HTML::Node::attributes() const

У кого-нибудь есть идея?

Ответы [ 3 ]

5 голосов
/ 10 мая 2011

Я только что посмотрел на источник.Нужная функция attribute, а не attributes:

// attribute takes a string
std::pair<bool, std::string> attribute(const std::string &attr) const { ... }

// attributes takes nothing
const std::map<std::string, std::string>& attributes() const { return this->mAttributes; }
2 голосов
/ 10 мая 2011

Похоже, что функция attributes не принимает имя атрибута в качестве параметра, а вместо этого возвращает все атрибуты на карте.Вы должны прочитать документацию библиотеки, чтобы подтвердить это.

1 голос
/ 23 декабря 2011

У меня была такая же проблема.Для получения дополнительной информации с использованием htmlcxx я нашел эти страницы полезными (поскольку htmlcxx использует этот класс дерева):

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