- Szólánc.
- eBay-es kütyük kis pénzért
- Asszociációs játék. :)
- Fűzzük össze a szavakat :)
- Szivat a ONE. Digi és követeléskezelő (Második rész)
- "Egyszerű" Ügyfélkapu+ regisztráció
- Ingyen kellene, de tegnapra
- Nagy "hülyétkapokazapróktól" topik
- Tanári fizetések: magas béremelést jelentett be az államtitkár - és a VALÓSÁG
- Digitális Állampolgárság Program
Új hozzászólás Aktív témák
-
Jester01
veterán
válasz ArchElf #1166 üzenetére
Nem tudom miért kell külön kérvényezni, hogy lehetőleg futtatható kódot kapjunk.
Ha jól értettem mit akar a kolléga, az nekem működik:
#include <iostream>
using namespace std;
#include <libxml/xmlreader.h>
#include <libxml/tree.h>
#include <libxml/xpath.h>
int main()
{
const char xml[] = "<r><n1><n2>x</n2></n1><n1></n1></r>";
xmlParserInputBufferPtr input = xmlParserInputBufferCreateMem(xml, sizeof(xml) - 1, XML_CHAR_ENCODING_NONE);
xmlTextReaderPtr reader = xmlNewTextReader(input, NULL);
xmlTextReaderNext(reader);
xmlNodePtr subtree = xmlTextReaderExpand(reader);
xmlXPathContextPtr xpathCtx = xmlXPathNewContext(subtree->doc);
if(xpathCtx == NULL)
{
cerr << "xpath context create failed" << endl;
return 1;
}
xpathCtx->node = subtree;
xmlXPathObjectPtr xpathObj = xmlXPathEvalExpression((xmlChar*)"n1/n2", xpathCtx);
if(xpathObj == NULL)
{
cerr << "xpath eval failed" << endl;
return 2;
}
//printXPathNodes(xpathObj->nodesetval);
cout << xpathObj->nodesetval->nodeNr << endl;
return 0;
}Jester
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!