Hirdetés
- sh4d0w: Árnyékos sarok
- Luck Dragon: Asszociációs játék. :)
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- eBay-es kütyük kis pénzért
- sziku69: Szólánc.
- MasterDeeJay: Harc a DDR5 árak ellen
- sziku69: Fűzzük össze a szavakat :)
- urandom0: Száműztem az AI-t az életemből
- btz: Internet fejlesztés országosan!
- D1Rect: Nagy "hülyétkapokazapróktól" topik
Ú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!
- GAMER LAPTOP - ASUS Rog Zephyrus M16 / Intel i7 12700 / RTX 3060 6gb / 24gb DDR5 / 2TB ssd
- Gigabyte GA-H110M-S2PV PC 7. gen i5 proci, 240 GB SSD, Jogtiszta Windows 11
- Gamer PC - Z790 / i5 13600 KF / 32 GB / 2 TB / RTX 3080
- RDX Kara Heavy F6 Felnőtt Álló bokszzsák 183CM / max 150Kg, ingyenes szállítás + 1pár kesztyű
- MacBook Pro 17" i7 2.6 GHz 8GB RAM 240 GB SSD 8 ciklus az akkuban!
- GYÖNYÖRŰ iPhone 12 mini 256GB Blue -1 ÉV GARANCIA -Kártyafüggetlen, MS3625, 100% Akkumulátor
- Samsung Galax S23 Ultra 256GB, Kártyafüggetlen, 1 Év Garanciával
- 160 - 177 - 178 - Lenovo LOQ (15IRX9) - Intel Core i7-13650HX, RTX 4060
- www.stylebolt.hu - Apple eszközök és tartozékok!
- Apple iPhone 12 Pro / 128GB / Kártyafüggetlen / 12Hó Garancia
Állásajánlatok
Cég: BroadBit Hungary Kft.
Város: Budakeszi
Cég: ATW Internet Kft.
Város: Budapest



