- Luck Dragon: Asszociációs játék. :)
- Steven: Sokat utazó kávéfüggők ide!
- gban: Ingyen kellene, de tegnapra
- f(x)=exp(x): A laposföld elmebaj: Vissza a jövőbe!
- nonsen5e: DPD tapasztalatok
- M0ng00se: Hardvert áruhitelre?
- ricshard444: Fényképező ? Telefon helyett
- sziku69: Fűzzük össze a szavakat :)
- eBay-es kütyük kis pénzért
- sziku69: Szólánc.
Ú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!
- Remek áron Lenovo ThinkPad x395 AMD Ryzen 7 pro-3700U/16GB/256 SSD/AMD Radeon Vega 10 Grap/FHD/IPS
- MacBook Air M1 8/256 92% Aksi szép állapotban
- iPhone 12 Pro Max 128GB Újszerű Független/1-3 hónap gar./Akku 86%/p4360
- Apple 20W adapter gyári!!!! Bontatlan!
- Lenovo Thinkpad x13 i7-10610U 32GB RAM 512SSD Érintőkijelző
- Kingmax 1x2GB DDR2 800 RAM eladó
- Lenovo LEGION Pro 5 / Pro 7, Lenovo Yoga Pro gépek (RTX 4060 / 4070 / 4080 / 4090)
- AKCIÓ! AMD Ryzen 7 3800X 8mag 16szál processzor garanciával hibátlan működéssel
- AKCIÓ! Dell Optiplex 5050 SFF asztali számítógép - i5 7500 8GB DDR4 256GB SSD HD630 Win10
- Lenovo ThinkPad L16 Gen 1 - 16" WUXGA IPS - Ultra 5 135U - 16GB - 512GB - Win11 - 2,5 év gari
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: CAMERA-PRO Hungary Kft
Város: Budapest