Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.93/58: Рейтинг темы: голосов - 58, средняя оценка - 4.93
Костяныч
18 / 18 / 4
Регистрация: 31.10.2010
Сообщений: 1,238
Записей в блоге: 2
1

Чтение Xml файла

18.06.2012, 18:31. Просмотров 11225. Ответов 57
Метки нет (Все метки)

Добрый день, решил освоить взаимодействие C++ с Xml файлами. Появился вопрос, есть ли стандартная библиотека в VS 2008, или надо подкачивать типа Tinyxml?
Если есть, то расскажите как ей пользоваться. Если же нет, то как Тини подключить, примеры для него есть, а подключать не пойму как.
Спасибо за ответы.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.06.2012, 18:31
Ответы с готовыми решениями:

Чтение XML файла
Пытаюсь извлечь данные из XML файла,но вылетает ошбка,код вроде правильный(в силу своей простоты)...

Чтение даты и данных из XML файла
Всем ДД! Есть xml-файл: (тут приведу кусок xml, т.к. файл большой. но там однотипные события ) Код...

Возможно ли чтение XML файла с C++ без использования сторонних библиотек?
Если нет, то какие библиотеки лучше?

Переделать в коде чтение из файла в чтение с клавиатуры
Переделайте что бы текст считывался с клавиатуры, а не с файла! Буду благодарен за помощь! //файл...

Чтение из файла. Повторное чтение файла
Добрый день. Необходимо реализовать в программе функцию повторного чтения данных из файла, в случае...

57
gooseim
Эксперт С++
513 / 417 / 92
Регистрация: 23.09.2010
Сообщений: 1,165
18.06.2012, 18:41 2
В VS готовых нет. На счет tinyxml - добавьте все ее cpp и h в проект и там где будете ее использовать напишите:
C++
1
#include "tinyxml.h"
И все в принципе.
1
Костяныч
18 / 18 / 4
Регистрация: 31.10.2010
Сообщений: 1,238
Записей в блоге: 2
18.06.2012, 18:46  [ТС] 3
Т.е. у меня есть папка, в ней debug, еще файлы какие-то, в этой папке я создаю tiny например, и туда все скидываю. А в коде просто подключаю?
0
gooseim
Эксперт С++
513 / 417 / 92
Регистрация: 23.09.2010
Сообщений: 1,165
18.06.2012, 18:50 4
Костяныч, в debug не надо. Лучше туда, где лежат остальные cpp / h. И не все, а достаточно h cpp. И не забудьте все h/cpp (или хотя бы cpp) добавить в проект, иначе не будет работать.
1
18.06.2012, 18:50
Костяныч
18 / 18 / 4
Регистрация: 31.10.2010
Сообщений: 1,238
Записей в блоге: 2
18.06.2012, 19:03  [ТС] 5
Хм, у меня 2 класса (разные). Что мне сделать, чтобы 1 не запускался вообще, а второй запускался?
0
gooseim
Эксперт С++
513 / 417 / 92
Регистрация: 23.09.2010
Сообщений: 1,165
18.06.2012, 19:06 6
Костяныч, ничего не понятно.
0
Костяныч
18 / 18 / 4
Регистрация: 31.10.2010
Сообщений: 1,238
Записей в блоге: 2
18.06.2012, 19:09  [ТС] 7
Я просто в одном проекте создал 1 класс, с ним побаловался, там алгоритм нужный лежит. В этом же проекте создал еще 1 класс, в нем хочу проверить работу Xml, потом классы взаимодействовать будут. Но сейчас мне нужно чтобы запускался только 2й класс, а первый нет.
0
gooseim
Эксперт С++
513 / 417 / 92
Регистрация: 23.09.2010
Сообщений: 1,165
18.06.2012, 19:13 8
Костяныч, не хотите запускать - так и не запускайте. Вы же сами его запускаете, а не кто-то еще. Как запускали, так и отзапускайте.
0
tomaticus
50 / 50 / 5
Регистрация: 02.01.2011
Сообщений: 505
18.06.2012, 20:44 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>
1
Костяныч
18 / 18 / 4
Регистрация: 31.10.2010
Сообщений: 1,238
Записей в блоге: 2
19.06.2012, 16:14  [ТС] 10
Я что-то не так делаю?
Скачал архив с Тини, из него все в отдельную папку скинул.
Добавил папку с Тинифайлами в корень проекта, в самом проекте добавил все файлы с расширениями .h и.cpp. И все равно пишет ошибку :'tinystr.h': No such file or directory.
0
Avazart
Эксперт С++
7973 / 5795 / 571
Регистрация: 10.12.2010
Сообщений: 26,642
Записей в блоге: 17
19.06.2012, 16:29 11
Попробуй в Debug кинуть
1
Костяныч
18 / 18 / 4
Регистрация: 31.10.2010
Сообщений: 1,238
Записей в блоге: 2
19.06.2012, 17:00  [ТС] 12
Avazart, А в проекте заменить файлы?
0
Avazart
Эксперт С++
7973 / 5795 / 571
Регистрация: 10.12.2010
Сообщений: 26,642
Записей в блоге: 17
19.06.2012, 17:14 13
То есть?
0
gooseim
Эксперт С++
513 / 417 / 92
Регистрация: 23.09.2010
Сообщений: 1,165
19.06.2012, 18:13 14
Костяныч, как называется папка, где лежит ваш tiny и как вы написали include?
0
Костяныч
18 / 18 / 4
Регистрация: 31.10.2010
Сообщений: 1,238
Записей в блоге: 2
19.06.2012, 18:18  [ТС] 15
С начала я папку TinyXml засунул в корень проекта, подабавлял в сам проект(программу) файлы с нужными расширениями, потом попробовал написать нечто #include <TinyXml/tinystr.h>, потом папку добавил в дебаг, потом из TinyXml вынул все и скинул опять же в проект и в дебаг.
0
gooseim
Эксперт С++
513 / 417 / 92
Регистрация: 23.09.2010
Сообщений: 1,165
19.06.2012, 18:21 16
C++
1
#include "TinyXml/tinyxml.h"
1
Костяныч
18 / 18 / 4
Регистрация: 31.10.2010
Сообщений: 1,238
Записей в блоге: 2
19.06.2012, 18:30  [ТС] 17
Надо было имя папки указывать с ковычками)
Появилась ошибка: main.obj : error LNK2005: _main already defined in xmltest.obj
0
gooseim
Эксперт С++
513 / 417 / 92
Регистрация: 23.09.2010
Сообщений: 1,165
19.06.2012, 18:35 18
Костяныч, xmltest.* надо удалить. Они не нужны.
0
tomaticus
50 / 50 / 5
Регистрация: 02.01.2011
Сообщений: 505
19.06.2012, 18:39 19
еще нужно построить проект, после этого появится .lib файл. Его подключить к проекту.
1
gooseim
Эксперт С++
513 / 417 / 92
Регистрация: 23.09.2010
Сообщений: 1,165
19.06.2012, 18:43 20
tomaticus, это совсем необязательно.
0
19.06.2012, 18:43
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.06.2012, 18:43

Преобразование текстового файла в двоичный и чтение исходных данных из двоичного файла.
#include&lt;iostream&gt; #include&lt;fstream&gt; #include&lt;locale.h&gt; #include&lt;iomanip&gt; #include &lt;cstdlib&gt;...

Чтение нескольких структур и одной переменной из бинарного файла. Формат файла имеется
Формат файла состоит из 3 структур и одной переменной. Подробное описание формата во вложении,...

как может корректно выполняющийся оператор >> (чтение из текстового файла) негативно влиять на открытие другого файла?
Друзья! Создадим два текстовых файла, f_0.txt и f_1.txt и что-нибудь в них запизаем, например в...


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

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

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