Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Alexxx7
97 / 33 / 5
Регистрация: 24.04.2012
Сообщений: 151
#1

Разбор XML - C++

30.11.2013, 17:20. Просмотров 978. Ответов 9
Метки нет (Все метки)

Начинаю разбираться с прочтением XML нашёл пример и он не хочет работать жалуется компилятор на функции xmlParseFile, xmlDocGetRootElement, xmlStrcmp, xmlGetProp что они ссылаются на главную функцию main.
Может кто в курсе что происходит?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include <stdio.h>
#include <libxml/parser.h>
#define CONF "file.xml"
 
int main(int argc, char *argv[])
{
xmlNodePtr cur;
xmlDocPtr doc;
 
doc = xmlParseFile(CONF);
  if(doc == NULL)
  {
    fprintf(stderr,"Error parsing file\n");
    return -1;
  }
  cur = xmlDocGetRootElement(doc);
  if(xmlStrcmp(cur->name,(const xmlChar *)"request"))
    return -1;
  cur = cur->xmlChildrenNode;
  while(cur != NULL)
  {
      if((!xmlStrcmp(cur->name,(const xmlChar *)"header")))
            {
                    printf("Section \"header\"\n");
                    printf("action = %s\n",xmlGetProp(cur,(const xmlChar *)"action"));
                    printf("dealer = %s\n",xmlGetProp(cur,(const xmlChar *)"dealer"));
            }
             if((!xmlStrcmp(cur->name,(const xmlChar *)"account")))
        {
                    printf("Section \"account\"\n");
                printf("service = %s\n",xmlGetProp(cur,(const xmlChar *)"service"));
                printf("id = %s\n",xmlGetProp(cur,(const xmlChar *)"id"));
                printf("id2 = %s\n",xmlGetProp(cur,(const xmlChar *)"id2"));
                printf("id3 = %s\n",xmlGetProp(cur,(const xmlChar *)"id3"));
                printf("id4 = %s\n",xmlGetProp(cur,(const xmlChar *)"id4"));
                        
        }
                if((!xmlStrcmp(cur->name,(const xmlChar *)"operation")))
                {
                    printf("Section \"Operation\"\n");
 
                    printf("id = %s\n",xmlGetProp(cur,(const xmlChar *)"id"));
                    printf("sum = %s\n",xmlGetProp(cur,(const xmlChar *)"sum"));
                    printf("point = %s\n",xmlGetProp(cur,(const xmlChar *)"point"));
                    printf("check = %s\n",xmlGetProp(cur,(const xmlChar *)"check"));
                }
                cur = cur->next;
    }
    }
ошибка 1>Source.obj : error LNK2019: unresolved external symbol _xmlDocGetRootElement referenced in function _main

P./S. если не трудно подскажите что почитать о этом можно доходчиво.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.11.2013, 17:20     Разбор XML
Посмотрите здесь:

Разбор строки C++
C++ Разбор задания
разбор ошибок C++
C++ Разбор кода
Запрос по https и получение xml, разбор последнего C++
разбор среды C++
разбор программы C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт C++
6549 / 3969 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
30.11.2013, 17:28     Разбор XML #2
Цитата Сообщение от Alexxx7 Посмотреть сообщение
Может кто в курсе что происходит?
написано же:
Цитата Сообщение от Alexxx7 Посмотреть сообщение
error LNK2019: unresolved external symbol _xmlDocGetRootElement referenced in function _main
линкер не может найти функцию xmlDocGetRootElement.
с библиотекой помимо хедеров наверняка были lib-файлы, вот их и нужно прописать в зависимости в опциях линкера
Alexxx7
97 / 33 / 5
Регистрация: 24.04.2012
Сообщений: 151
30.11.2013, 17:40  [ТС]     Разбор XML #3
да есть подскажите как это сделать, хэдеры я подкреплял через Additional Include Directories в Property
Jupiter
Каратель
Эксперт C++
6549 / 3969 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
30.11.2013, 17:48     Разбор XML #4
Цитата Сообщение от Alexxx7 Посмотреть сообщение
Additional Include Directories в Property
там же должно быть что-то вроде Additional Library(или binary) Directories, добавь туда путь к lib-файлам.
дальше переходим на вкладку Linker Options (или как-то так) ищем свойство Additional dependencies (или как-то так)
и добавляем туда имена lib-файлов
Alexxx7
97 / 33 / 5
Регистрация: 24.04.2012
Сообщений: 151
30.11.2013, 18:16  [ТС]     Разбор XML #5
спасибо всё скомпилировалось, запускается и но теперь выдаёт такую ошибку...
может перезаписать libxml2.lib?
Миниатюры
Разбор XML  
Jupiter
Каратель
Эксперт C++
6549 / 3969 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
30.11.2013, 18:18     Разбор XML #6
добавь эту dll в папку с программой
Alexxx7
97 / 33 / 5
Регистрация: 24.04.2012
Сообщений: 151
30.11.2013, 21:49  [ТС]     Разбор XML #7
Всё заработало но файл не открывается, xml находится в той же паке что exe файл, doc = xmlParseFile(CONF); - возвращает ноль, я уже и перемещал файл и переписывал путь никакого результата, чувствую себя полным бараном. Объясните что происходит.
XML
1
2
3
4
5
<request>
<header action=”payment” dealer=”mCash”/>
<account service=”0” id=”Иванов Иван” id2=”123456879” id3=”” id4=”” />
<operation id=”7456646” sum=”9.45” point=”350” check=”17235”/>
</request>
Jupiter
Каратель
Эксперт C++
6549 / 3969 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
30.11.2013, 22:03     Разбор XML #8
Alexxx7, попробуй запустить программу не из студии, а прямо в проводнике

Добавлено через 4 минуты
или помести хмл файлик в тут же папку гле лежит файл проекта и запускай из студии
Alexxx7
97 / 33 / 5
Регистрация: 24.04.2012
Сообщений: 151
01.12.2013, 20:33  [ТС]     Разбор XML #9
да не выходит, запускаю через студию просто не открывает, через экзешник - виснет, отладчик показывает следующее
Миниатюры
Разбор XML  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.12.2013, 20:35     Разбор XML
Еще ссылки по теме:

C++ Разбор OpenSource
C++ Разбор кода
C++ разбор программы
Разбор кода C++
C++ Разбор программы

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Alexxx7
97 / 33 / 5
Регистрация: 24.04.2012
Сообщений: 151
01.12.2013, 20:35  [ТС]     Разбор XML #10
я в отладчике вот что увидел
xml_pars.exe': Loaded 'C:\Windows\SysWOW64\iconv.dll', Binary was not built with debug information.
'xml_pars.exe': Loaded 'C:\Windows\SysWOW64\zlib1.dll', Binary was not built with debug information.
я эти dll -ки лично скачивал и туда их закидывал, может какие нибудь особенные надо?
Yandex
Объявления
01.12.2013, 20:35     Разбор XML
Ответ Создать тему
Опции темы

Текущее время: 00:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru