Új hozzászólás Aktív témák
-
peterszky
őstag
válasz
ArchElf #1166 üzenetére
Közben rátaláltam a problémám forrására, az XML namespace "zavar" be, annak a kezelését kell megoldani.
<Document xmlns="xyz" xmlns:xsi="<url>"> -> ezzel nem ment az XPath hivatkozás.
<Document> -> ha kiszedtem, akkor viszont működött prímán, azt hiszem, hogy a namespace regisztrálás felé kell kutakodni, ennek kell utánanéznem.És sorry, hogy nem tettem futtatható kódot, eddigi kereséseim alapján nem egy túl elterjedt dolog ez, nem gondoltam volna, hogy ilyen gyorsan segítség érkezik
-
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;
}
Ú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!
- Bittorrent topik
- Formula-1
- Milyen videókártyát?
- AMD Ryzen 9 / 7 / 5 / 3 5***(X) "Zen 3" (AM4)
- World of Tanks - MMO
- Majdnem mindenki a TSMC 2 nm-es node-jára vágyik, de van egy nagy probléma vele
- sziku69: Fűzzük össze a szavakat :)
- AMD Ryzen 9 / 7 / 5 7***(X) "Zen 4" (AM5)
- PlayStation 5
- Fali konzol lapos tévékhez
- További aktív témák...
- Bomba ár! Dell Latitude 7390 2in1 - i7-8G I 16GB I 256SSD I 13,3"FHD Touch I HDMI I Cam I W11 I Gar
- ÁRGARANCIA!Épített KomPhone i5 13400F 16/32/64GB RAM RTX 4060 Ti 8GB GAMER PC termékbeszámítással
- ÁRGARANCIA!Épített KomPhone i5 14600KF 32/64GB RAM RX 7800 XT 16GB GAMER PC termékbeszámítással
- BESZÁMÍTÁS! Intel Core i7 4790 4 mag 8 szál processzor garanciával hibátlan működéssel
- Xiaomi Redmi 9A 32GB Kártyafüggetlen 1Év Garanciával
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest