Ú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!
- LG Ultragear 27GN60R (fekete szín)
- Azta! Dell Latitude 7440 -65% "Kis Gamer" Üzleti Profi Ultrabook 14" i7-1370P 16/512 FHD+ IRIS Xe
- Lenovo Thinkpad X280, 12,5" FHD IPS Touch , I5-8350U CPU, 8GB DDR4, 256GB SSD, W11 ( olvasd végig )
- Lenovo Thinkpad T480, 14" FHD , I5-8350U CPU, 8GB DDR4, 256GB SSD, W11
- Eladó Garanciális Thrustmaster T248 kormány és pedál + TH8S váltó + kamion váltógomb
- DELL, HP gyári töltők, sok db. 7,4x5mm - 4,5x3mm + USB-C/Type-C 65W
- AKCIÓ! Apple Macbook Pro 16" 2019 i7 9750H 32GB 500GB Radeon Pro 5300M hibátlan működéssel
- Samsung Galaxy A12 64GB, Kártyafüggetlen, 1 Év Garanciával
- BESZÁMÍTÁS! Gigabyte A620M R5 7500F 32GB DDR5 512GB SSD RX 6700 XT 12GB ZALMAN S3 TG CM 700W
- AKCIÓ! MSI B450M R7 5700X 16GB DDR4 512GB SSD RX 5700 XT 8GB Rampage SHIVA Zalman 600W
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest