20 / 20 / 4
Регистрация: 31.10.2010
Сообщений: 1,240
Записей в блоге: 2
1

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

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

Author24 — интернет-сервис помощи студентам
Добрый день, решил освоить взаимодействие C++ с Xml файлами. Появился вопрос, есть ли стандартная библиотека в VS 2008, или надо подкачивать типа Tinyxml?
Если есть, то расскажите как ей пользоваться. Если же нет, то как Тини подключить, примеры для него есть, а подключать не пойму как.
Спасибо за ответы.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.06.2012, 18:31
Ответы с готовыми решениями:

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

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

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

Чтение XML файла, без использования встроенных средств работы с XML
Разработать программу на любом из перечисленных языков программирования c#. Программа должна...

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

Чтение из XML-файла
Как средствами 1С 8.3 считать из XML файла узел со вложенными узлами? Вот код из 1С 7.7: ...

Чтение xml файла
Доброго дня всем. Когда загоняю xml в базу MySql иногда обрезаются строки. Например если есть...

Чтение XML файла
Здравствуйте! Подскажите пожалуйста, почему у меня получается пустое значение поля id (переменная...

Чтение Xml - Файла
Читаю ХML: Код ( (Unknown Language)): Пока Чтение.Прочитать() Цикл Сообщить(Чтение.Имя); Если...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru