Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

Разбор XML - C++

30.11.2013, 17:20. Просмотров 1085. Ответов 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. если не трудно подскажите что почитать о этом можно доходчиво.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.11.2013, 17:20
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Разбор XML (C++):

Запрос по https и получение xml, разбор последнего - C++
Запрос по https и получение xml, разбор последнего С помощью чего лучьше делать?

Разбор выражений - C++
Вывести значение целочисленного выражения, заданного в виде строки S. Выражение определяется следующим образом: &lt;выражение&gt; ::= &lt;терм&gt;...

разбор среды - C++
помогите разобраться со средой с++установил а как пользоваться незнаю что куда писать надо я только недавно начал осваивать компьютер очеь...

Разбор задачи по С++ - C++
В универе дали задачу с условием, которое я не могу понять. Спросить у препода есть вариант, но только через неделю, поэтому хотелось бы,...

Разбор кода - C++
Помогите, пожалуйста, разобрать данный код. Многое из этого мне еще не знакомо. Поэтому не могу уловить суть действий. Чем больше будет...

Разбор задания - C++
Добрый вечер уважаемые эксперты! Есть следующее задание: составить двусвязный список объектов класса описывающего студента (Ф.И.О. номер...

9
Jupiter
Каратель
Эксперт С++
6561 / 3982 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
30.11.2013, 17:28 #2
Цитата Сообщение от Alexxx7 Посмотреть сообщение
Может кто в курсе что происходит?
написано же:
Цитата Сообщение от Alexxx7 Посмотреть сообщение
error LNK2019: unresolved external symbol _xmlDocGetRootElement referenced in function _main
линкер не может найти функцию xmlDocGetRootElement.
с библиотекой помимо хедеров наверняка были lib-файлы, вот их и нужно прописать в зависимости в опциях линкера
0
Alexxx7
98 / 34 / 5
Регистрация: 24.04.2012
Сообщений: 151
30.11.2013, 17:40  [ТС] #3
да есть подскажите как это сделать, хэдеры я подкреплял через Additional Include Directories в Property
0
Jupiter
Каратель
Эксперт С++
6561 / 3982 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
30.11.2013, 17:48 #4
Цитата Сообщение от Alexxx7 Посмотреть сообщение
Additional Include Directories в Property
там же должно быть что-то вроде Additional Library(или binary) Directories, добавь туда путь к lib-файлам.
дальше переходим на вкладку Linker Options (или как-то так) ищем свойство Additional dependencies (или как-то так)
и добавляем туда имена lib-файлов
1
Alexxx7
98 / 34 / 5
Регистрация: 24.04.2012
Сообщений: 151
30.11.2013, 18:16  [ТС] #5
спасибо всё скомпилировалось, запускается и но теперь выдаёт такую ошибку...
может перезаписать libxml2.lib?
0
Миниатюры
Разбор XML  
Jupiter
Каратель
Эксперт С++
6561 / 3982 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
30.11.2013, 18:18 #6
добавь эту dll в папку с программой
0
Alexxx7
98 / 34 / 5
Регистрация: 24.04.2012
Сообщений: 151
30.11.2013, 21:49  [ТС] #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>
0
Jupiter
Каратель
Эксперт С++
6561 / 3982 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
30.11.2013, 22:03 #8
Alexxx7, попробуй запустить программу не из студии, а прямо в проводнике

Добавлено через 4 минуты
или помести хмл файлик в тут же папку гле лежит файл проекта и запускай из студии
0
Alexxx7
98 / 34 / 5
Регистрация: 24.04.2012
Сообщений: 151
01.12.2013, 20:33  [ТС] #9
да не выходит, запускаю через студию просто не открывает, через экзешник - виснет, отладчик показывает следующее
0
Миниатюры
Разбор XML  
Alexxx7
98 / 34 / 5
Регистрация: 24.04.2012
Сообщений: 151
01.12.2013, 20:35  [ТС] #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 -ки лично скачивал и туда их закидывал, может какие нибудь особенные надо?
0
01.12.2013, 20:35
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.12.2013, 20:35
Привет! Вот еще темы с ответами:

разбор ошибок - C++
всем доброго времени суток! написал прогу которая работаес с базой данных. в студии все прекрасно работало, но нада на Борланд С++ 3.1 ....

Разбор кода - C++
Здравствуйте! Подскажите, пожалуйста, что обозначает вот это Utf8_16::utf8 Utf8_16::k_Boms зачем тут нужны двоеточия :) const...

разбор программы - C++
друзья хотел бы попросить помощи с одной программой, в программировании не разбираюсь по єтому пришел к вам на форум. Есть программа одно...

Разбор полетов - C++
Меня больше всего интересует строчка вычесления позиции символа. (ring - lotr + 1). объясните, пожалуйста int main () { char...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.