не дайте пропасть други :^) пытаюсь получить value из вот такого XML'я: <?xml version="1.0"?> <first> <second xmlns="xxx:yyy:zzz"> <third>value</third> </second> </first> делаю для этого нижеследующий кодъ он работает если убрать xmlns.. пытался заюзать xmlXPathRegisterNs, но к положительному результату это не привело... подскажите как быть! ------------------------------- code -------------------------------- #include <stdio.h> #include <string.h> #include <libxml/parser.h> #include <libxml/xpath.h> #include <libxml/xpathInternals.h> int main(void) { char msg[] = "<?xml version=\"1.0\"?>\n<first>\n<second xmlns=\"xxx:yyy:zzz\">\n<third>value</third>\n</second></first>\n"; xmlDoc *doc = NULL; xmlXPathContextPtr context; xmlXPathObjectPtr result; LIBXML_TEST_VERSION doc = xmlReadMemory(msg, sizeof(msg), "noname.xml", NULL, XML_PARSE_NOERROR | XML_PARSE_NOWARNING | XML_PARSE_RECOVER); if (doc == NULL) { fprintf(stderr, "Failed!\n"); return (-1); } context = xmlXPathNewContext(doc); if (context == NULL) { printf("Error in xmlXPathNewContext\n"); return 2; } result = xmlXPathEval((xmlChar*)"/first/second/third", context); xmlXPathFreeContext(context); if (result == NULL) { printf("Error in xmlXPathEval\n"); return 2; } if (result->type == XPATH_NODESET) printf("third=%s\n", xmlXPathCastNodeSetToString(result->nodesetval)); xmlFreeDoc(doc); xmlCleanupParser(); xmlMemoryDump(); return (0); }