通过 libxml 确定 Xpath 内容
Determine Xpath content via libxml
我在 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,如示例中所示。
我在 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,如示例中所示。