我发现了以下XML示例,但不确定如何在C ++中获得xpath数据(使用boost ptree xmlparser除外)。

/* Evaluate xpath expression */
xpathObj = xmlXPathEvalExpression(xpathExpr, xpathCtx);
if(xpathObj == NULL) {
    fprintf(stderr,"Error: unable to evaluate xpath expression \"%s\"\n", xpathExpr);
    xmlXPathFreeContext(xpathCtx);
    xmlFreeDoc(doc);
    return;
}
//cout <<"REsult : "<<xpathObj->stringval<<endl; /* Fails with bus error */

最佳答案

xpathObj中确切包含的内容取决于您的xpath表达式匹配的内容。如果您只是想从中获取文本,可以在xpathObj-> nodesetval中的节点上进行迭代,调用xmlNodeListGetString,如示例所示。

http://www.xmlsoft.org/tutorial/ar01s05.html

08-17 03:18