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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 57, средняя оценка - 4.86
Костяныч
16 / 16 / 0
Регистрация: 31.10.2010
Сообщений: 1,238
Записей в блоге: 2
#1

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

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

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

Чтение XML файла - C++
Пытаюсь извлечь данные из XML файла,но вылетает ошбка,код вроде правильный(в силу своей простоты) #include "tinyxml.h" ...

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

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

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

Преобразование текстового файла в двоичный и чтение исходных данных из двоичного файла. - C++
#include<iostream> #include<fstream> #include<locale.h> #include<iomanip> #include <cstdlib> using namespace std; struct...

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

57
gooseim
Эксперт С++
510 / 414 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
18.06.2012, 18:41 #2
В VS готовых нет. На счет tinyxml - добавьте все ее cpp и h в проект и там где будете ее использовать напишите:
C++
1
#include "tinyxml.h"
И все в принципе.
1
Костяныч
16 / 16 / 0
Регистрация: 31.10.2010
Сообщений: 1,238
Записей в блоге: 2
18.06.2012, 18:46  [ТС] #3
Т.е. у меня есть папка, в ней debug, еще файлы какие-то, в этой папке я создаю tiny например, и туда все скидываю. А в коде просто подключаю?
0
gooseim
Эксперт С++
510 / 414 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
18.06.2012, 18:50 #4
Костяныч, в debug не надо. Лучше туда, где лежат остальные cpp / h. И не все, а достаточно h cpp. И не забудьте все h/cpp (или хотя бы cpp) добавить в проект, иначе не будет работать.
1
Костяныч
16 / 16 / 0
Регистрация: 31.10.2010
Сообщений: 1,238
Записей в блоге: 2
18.06.2012, 19:03  [ТС] #5
Хм, у меня 2 класса (разные). Что мне сделать, чтобы 1 не запускался вообще, а второй запускался?
0
gooseim
Эксперт С++
510 / 414 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
18.06.2012, 19:06 #6
Костяныч, ничего не понятно.
0
Костяныч
16 / 16 / 0
Регистрация: 31.10.2010
Сообщений: 1,238
Записей в блоге: 2
18.06.2012, 19:09  [ТС] #7
Я просто в одном проекте создал 1 класс, с ним побаловался, там алгоритм нужный лежит. В этом же проекте создал еще 1 класс, в нем хочу проверить работу Xml, потом классы взаимодействовать будут. Но сейчас мне нужно чтобы запускался только 2й класс, а первый нет.
0
gooseim
Эксперт С++
510 / 414 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
18.06.2012, 19:13 #8
Костяныч, не хотите запускать - так и не запускайте. Вы же сами его запускаете, а не кто-то еще. Как запускали, так и отзапускайте.
0
tomaticus
47 / 47 / 2
Регистрация: 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
Костяныч
16 / 16 / 0
Регистрация: 31.10.2010
Сообщений: 1,238
Записей в блоге: 2
19.06.2012, 16:14  [ТС] #10
Я что-то не так делаю?
Скачал архив с Тини, из него все в отдельную папку скинул.
Добавил папку с Тинифайлами в корень проекта, в самом проекте добавил все файлы с расширениями .h и.cpp. И все равно пишет ошибку :'tinystr.h': No such file or directory.
0
Avazart
Эксперт С++
7585 / 5570 / 330
Регистрация: 10.12.2010
Сообщений: 24,990
Записей в блоге: 17
19.06.2012, 16:29 #11
Попробуй в Debug кинуть
1
Костяныч
16 / 16 / 0
Регистрация: 31.10.2010
Сообщений: 1,238
Записей в блоге: 2
19.06.2012, 17:00  [ТС] #12
Avazart, А в проекте заменить файлы?
0
Avazart
Эксперт С++
7585 / 5570 / 330
Регистрация: 10.12.2010
Сообщений: 24,990
Записей в блоге: 17
19.06.2012, 17:14 #13
То есть?
0
gooseim
Эксперт С++
510 / 414 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
19.06.2012, 18:13 #14
Костяныч, как называется папка, где лежит ваш tiny и как вы написали include?
0
Костяныч
16 / 16 / 0
Регистрация: 31.10.2010
Сообщений: 1,238
Записей в блоге: 2
19.06.2012, 18:18  [ТС] #15
С начала я папку TinyXml засунул в корень проекта, подабавлял в сам проект(программу) файлы с нужными расширениями, потом попробовал написать нечто #include <TinyXml/tinystr.h>, потом папку добавил в дебаг, потом из TinyXml вынул все и скинул опять же в проект и в дебаг.
0
19.06.2012, 18:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.06.2012, 18:18
Привет! Вот еще темы с ответами:

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

Чтение файла с несколькими знаками конца файла - C++
В файле несколько раз встречается ноль, и ни как не получается прочитать его полностью. Как можно решить данную проблему ?

чтение из файла - C++
файл текст... чтение... ... char font_name = {0}; int font_size = 0;

Чтение из файла - C++
Добрый вечер! Помогите пожалуйста с одной проблемкой! Я Создала структуру node Вот он: struct node { char sym; float pro; ...


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

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

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