Ниже описано, как я вызываю функцию Xpath.evaluate. Это не работает из-за неправильного вызова функции. пожалуйста помоги
std::vector<std::string> album;
xpath.evaluate("*[local-name()=*album*]/text()",album);
функция xpath.evaluate
void XPath::evaluate(char const* xpath, vector<string>& result) const
throw (Error) {
result.clear();
vector<xmlNodePtr> r;
evaluate(xpath, r);
xmlBufferPtr buff = xmlBufferCreate();
for (size_t i = 0; i < r.size(); ++i) {
xmlSaveCtxtPtr ctxt = xmlSaveToBuffer(buff, "UTF-8",
XML_SAVE_NO_DECL | XML_SAVE_NO_XHTML);
xmlNodePtr clone = xmlCopyNode(r[i], 1);
xmlSaveTree(ctxt, clone);
// OMG
if (clone->doc != NULL && clone->doc != r[i]->doc) {
xmlFreeDoc(clone->doc);
}
else {
xmlFreeNode(clone);
}
xmlSaveFlush(ctxt);
result.push_back(string((char const*) buff->content, buff->use));
xmlSaveClose(ctxt);
xmlBufferEmpty(buff);
}
xmlBufferFree(buff);
}
как мне вызвать эту функцию ??
album[2]
это std::string
, Вам нужно только пройти album
чтобы соответствовать vector<string>&
аргумент.
Других решений пока нет …