не дайте пропасть други :^) пытаюсь получить 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); }
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от anonymous
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум [C] Хидеры и Undefined reference. (2012)
- Форум Вопрос по библиотеке expat (2004)
- Форум g++ expects argument (2013)
- Форум Spring MVC. Вспомнить забытое (2014)
- Форум [php5][expat] где мои entity? (2008)
- Форум [Apache TomCat 6][Cannot create JDBC driver of class " for connect URL 'null'] Не могу побороть (2010)
- Форум Помогите с алгоритмом (2005)
- Форум Заставить SDL2 работать с шейдерами OpenGL (2017)
- Форум Загадка с аалокаторами с С++ (2008)
- Форум Помогите собрать emerald, ошибка при компиляции. (2017)