не дайте пропасть други :^)
пытаюсь получить 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)