htmlcxx编译错误

时间:2011-05-10 11:20:41

标签: c++ compiler-errors

我尝试使用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 个答案:

答案 0 :(得分:5)

我刚看了一眼来源。您想要的功能是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; }

答案 1 :(得分:2)

看起来attributes函数不会将属性名称作为参数,而是返回地图中的所有属性。您应该阅读库文档以确认这一点。

答案 2 :(得分:1)

我遇到了同样的问题。有关使用htmlcxx的更多信息,我发现这些页面很有用(因为htmlcxx使用了这个树类):