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

Чтение Xml файла - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 57, средняя оценка - 4.86
Костяныч
15 / 15 / 0
Регистрация: 31.10.2010
Сообщений: 1,225
Записей в блоге: 2
18.06.2012, 18:31     Чтение Xml файла #1
Добрый день, решил освоить взаимодействие C++ с Xml файлами. Появился вопрос, есть ли стандартная библиотека в VS 2008, или надо подкачивать типа Tinyxml?
Если есть, то расскажите как ей пользоваться. Если же нет, то как Тини подключить, примеры для него есть, а подключать не пойму как.
Спасибо за ответы.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gooseim
Эксперт C++
500 / 404 / 35
Регистрация: 23.09.2010
Сообщений: 1,139
18.06.2012, 18:41     Чтение Xml файла #2
В VS готовых нет. На счет tinyxml - добавьте все ее cpp и h в проект и там где будете ее использовать напишите:
C++
1
#include "tinyxml.h"
И все в принципе.
Костяныч
15 / 15 / 0
Регистрация: 31.10.2010
Сообщений: 1,225
Записей в блоге: 2
18.06.2012, 18:46  [ТС]     Чтение Xml файла #3
Т.е. у меня есть папка, в ней debug, еще файлы какие-то, в этой папке я создаю tiny например, и туда все скидываю. А в коде просто подключаю?
gooseim
Эксперт C++
500 / 404 / 35
Регистрация: 23.09.2010
Сообщений: 1,139
18.06.2012, 18:50     Чтение Xml файла #4
Костяныч, в debug не надо. Лучше туда, где лежат остальные cpp / h. И не все, а достаточно h cpp. И не забудьте все h/cpp (или хотя бы cpp) добавить в проект, иначе не будет работать.
Костяныч
15 / 15 / 0
Регистрация: 31.10.2010
Сообщений: 1,225
Записей в блоге: 2
18.06.2012, 19:03  [ТС]     Чтение Xml файла #5
Хм, у меня 2 класса (разные). Что мне сделать, чтобы 1 не запускался вообще, а второй запускался?
gooseim
Эксперт C++
500 / 404 / 35
Регистрация: 23.09.2010
Сообщений: 1,139
18.06.2012, 19:06     Чтение Xml файла #6
Костяныч, ничего не понятно.
Костяныч
15 / 15 / 0
Регистрация: 31.10.2010
Сообщений: 1,225
Записей в блоге: 2
18.06.2012, 19:09  [ТС]     Чтение Xml файла #7
Я просто в одном проекте создал 1 класс, с ним побаловался, там алгоритм нужный лежит. В этом же проекте создал еще 1 класс, в нем хочу проверить работу Xml, потом классы взаимодействовать будут. Но сейчас мне нужно чтобы запускался только 2й класс, а первый нет.
gooseim
Эксперт C++
500 / 404 / 35
Регистрация: 23.09.2010
Сообщений: 1,139
18.06.2012, 19:13     Чтение Xml файла #8
Костяныч, не хотите запускать - так и не запускайте. Вы же сами его запускаете, а не кто-то еще. Как запускали, так и отзапускайте.
tomaticus
 Аватар для tomaticus
46 / 46 / 2
Регистрация: 02.01.2011
Сообщений: 505
18.06.2012, 20:44     Чтение Xml файла #9
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
#include "stdafx.h"
#include "int.h"
 
 
int main()
{
 
    TiXmlDocument *xml_file = new TiXmlDocument("test.xml");
    if(!xml_file->LoadFile())
    {
        cout << "file " << xml_file->Value() << " have any errors" << endl;
    }
    else
    {
        cout << "file " << xml_file->Value() << " is loaded!" << endl;
    }
    
     TiXmlElement *xml_1 = 0;
     xml_1 = xml_file->FirstChildElement();   //выбор первого тега
 
     TiXmlElement *xml_2 = 0;
     xml_2 = xml_1->FirstChildElement("uid");   // выбор первого тега после предыдущего
 
     while(xml_2 != NULL)
     {
         index++;
         cout << xml_2->GetText() << endl;
         xml_2 = xml_2->NextSiblingElement("uid");   // перебор всех uid`ов
     }
     cout << "\n Кол-во значений : " << index;
         getchar();
}
файл "stdafx.h"

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#pragma once
#include <iostream>
#include <stdio.h>
#include <windows.h>
#include <tinystr.h>
#include <tinyxml.h>
#include <pugixml.hpp>
#include <pugiconfig.hpp>
#include <gl\glaux.h>
#include <gl\glut.h>
#include <math.h>
#include <mmsystem.h>
#include <stdexcept>
#include <fstream>
#include "targetver.h"
#include <tchar.h>
#include <WinInet.h>
#pragma comment(lib,"wininet")
#pragma warning(disable: 4786) // выключает разные ошибки
using namespace std;
Добавлено через 48 секунд
Содержимое test.xml :
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<response list="true">
  <uid>11446600</uid>
  <uid>54791817</uid>
  <uid>57770719</uid>
  <uid>59499708</uid>
  <uid>61662935</uid>
  <uid>69636645</uid>
  <uid>69982932</uid>
  <uid>81797696</uid>
  <uid>95635292</uid>
  <uid>137173864</uid>
  <uid>147519637</uid>
  <uid>151798548</uid>
  <uid>160386676</uid>
</response>
Костяныч
15 / 15 / 0
Регистрация: 31.10.2010
Сообщений: 1,225
Записей в блоге: 2
19.06.2012, 16:14  [ТС]     Чтение Xml файла #10
Я что-то не так делаю?
Скачал архив с Тини, из него все в отдельную папку скинул.
Добавил папку с Тинифайлами в корень проекта, в самом проекте добавил все файлы с расширениями .h и.cpp. И все равно пишет ошибку :'tinystr.h': No such file or directory.
Avazart
 Аватар для Avazart
6900 / 5140 / 252
Регистрация: 10.12.2010
Сообщений: 22,592
Записей в блоге: 17
19.06.2012, 16:29     Чтение Xml файла #11
Попробуй в Debug кинуть
Костяныч
15 / 15 / 0
Регистрация: 31.10.2010
Сообщений: 1,225
Записей в блоге: 2
19.06.2012, 17:00  [ТС]     Чтение Xml файла #12
Avazart, А в проекте заменить файлы?
Avazart
 Аватар для Avazart
6900 / 5140 / 252
Регистрация: 10.12.2010
Сообщений: 22,592
Записей в блоге: 17
19.06.2012, 17:14     Чтение Xml файла #13
То есть?
gooseim
Эксперт C++
500 / 404 / 35
Регистрация: 23.09.2010
Сообщений: 1,139
19.06.2012, 18:13     Чтение Xml файла #14
Костяныч, как называется папка, где лежит ваш tiny и как вы написали include?
Костяныч
15 / 15 / 0
Регистрация: 31.10.2010
Сообщений: 1,225
Записей в блоге: 2
19.06.2012, 18:18  [ТС]     Чтение Xml файла #15
С начала я папку TinyXml засунул в корень проекта, подабавлял в сам проект(программу) файлы с нужными расширениями, потом попробовал написать нечто #include <TinyXml/tinystr.h>, потом папку добавил в дебаг, потом из TinyXml вынул все и скинул опять же в проект и в дебаг.
gooseim
Эксперт C++
500 / 404 / 35
Регистрация: 23.09.2010
Сообщений: 1,139
19.06.2012, 18:21     Чтение Xml файла #16
C++
1
#include "TinyXml/tinyxml.h"
Костяныч
15 / 15 / 0
Регистрация: 31.10.2010
Сообщений: 1,225
Записей в блоге: 2
19.06.2012, 18:30  [ТС]     Чтение Xml файла #17
Надо было имя папки указывать с ковычками)
Появилась ошибка: main.obj : error LNK2005: _main already defined in xmltest.obj
gooseim
Эксперт C++
500 / 404 / 35
Регистрация: 23.09.2010
Сообщений: 1,139
19.06.2012, 18:35     Чтение Xml файла #18
Костяныч, xmltest.* надо удалить. Они не нужны.
tomaticus
 Аватар для tomaticus
46 / 46 / 2
Регистрация: 02.01.2011
Сообщений: 505
19.06.2012, 18:39     Чтение Xml файла #19
еще нужно построить проект, после этого появится .lib файл. Его подключить к проекту.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.06.2012, 18:43     Чтение Xml файла
Еще ссылки по теме:

Чтение даты и данных из XML файла C++
Чтение файла в 16-СС C++
Чтение файла с несколькими знаками конца файла C++

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

Или воспользуйтесь поиском по форуму:
gooseim
Эксперт C++
500 / 404 / 35
Регистрация: 23.09.2010
Сообщений: 1,139
19.06.2012, 18:43     Чтение Xml файла #20
tomaticus, это совсем необязательно.
Yandex
Объявления
19.06.2012, 18:43     Чтение Xml файла
Ответ Создать тему
Опции темы

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