HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

c++ и xml
  #1  
Старый 01.07.2009, 14:12
malik555
Участник форума
Регистрация: 04.02.2009
Сообщений: 132
С нами: 9086760

Репутация: 1
По умолчанию c++ и xml

Всем привет !


Как можно разобрать xml в c++ под unix

например

Код:
char  xml =  "
                    <root>
                        <item>
                          <a>Helo !!!</a>
                        </item>
                    </root>
                     ";
вытащить "Helo !!" ?
 
Ответить с цитированием

  #2  
Старый 01.07.2009, 14:25
[n]-c0der
Участник форума
Регистрация: 03.02.2009
Сообщений: 104
С нами: 9087590

Репутация: 70
По умолчанию

Вообще существует не мало либ, для работы с XML...
К примеру вот:
http://xerces.apache.org/index.html
http://www.chilkatsoft.com/xml-library.asp
CdataClass -> http://www.firstobject.com/dn_dataedit.htm
http://www.firstobject.com/dn_editor.htm - программка с исходным кодом, можно глянуть исходники
 
Ответить с цитированием

  #3  
Старый 01.07.2009, 19:58
t4Nk
Познающий
Регистрация: 23.09.2007
Сообщений: 75
С нами: 9806336

Репутация: 86
По умолчанию

советую pugixml

использовать так
Код:
#include <iostream>
#include "pugixml.hpp"

using namespace pugi;
using namespace std;

int main(int argc, char *argv[]) {

	xml_document doc;

	char xml[] = "<root><item><a>Hello world!</a></item></root>";
	doc.load(xml);
	xml_node item = doc.child("root").child("item").child("a");
	cout << item.child_value(); // Hello world!
	
	return 0;
}
удачи (:
 
Ответить с цитированием

  #4  
Старый 01.07.2009, 21:25
malik555
Участник форума
Регистрация: 04.02.2009
Сообщений: 132
С нами: 9086760

Репутация: 1
По умолчанию

Цитата:
Сообщение от t4Nk  
советую pugixml

использовать так
Код:
#include <iostream>
#include "pugixml.hpp"

using namespace pugi;
using namespace std;

int main(int argc, char *argv[]) {

	xml_document doc;

	char xml[] = "<root><item><a>Hello world!</a></item></root>";
	doc.load(xml);
	xml_node item = doc.child("root").child("item").child("a");
	cout << item.child_value(); // Hello world!
	
	return 0;
}
удачи (:

Спасибо !

Проблема такая скачал я эту штуку папку src/ кинул на сервер компелю

g++ xml.cpp -o xml

выдает

Код:
/var/tmp//ccS1gZxe.o(.text+0x1bf): In function `main':
: undefined reference to `pugi::xml_document::xml_document()'
/var/tmp//ccS1gZxe.o(.text+0x246): In function `main':
: undefined reference to `pugi::xml_document::load(char const*, unsigned int)'
/var/tmp//ccS1gZxe.o(.text+0x25f): In function `main':
: undefined reference to `pugi::xml_node::child(char const*) const'
/var/tmp//ccS1gZxe.o(.text+0x275): In function `main':
: undefined reference to `pugi::xml_node::child(char const*) const'
/var/tmp//ccS1gZxe.o(.text+0x28b): In function `main':
: undefined reference to `pugi::xml_node::child(char const*) const'
/var/tmp//ccS1gZxe.o(.text+0x299): In function `main':
: undefined reference to `pugi::xml_node::child_value() const'
/var/tmp//ccS1gZxe.o(.text+0x2bc): In function `main':
: undefined reference to `pugi::xml_document::~xml_document()'
/var/tmp//ccS1gZxe.o(.text+0x2de): In function `main':
: undefined reference to `pugi::xml_document::~xml_document()'
что это может быть ?
 
Ответить с цитированием

  #5  
Старый 01.07.2009, 21:47
t4Nk
Познающий
Регистрация: 23.09.2007
Сообщений: 75
С нами: 9806336

Репутация: 86
По умолчанию

malik555, так ты компилмшь только xml.cpp, а надо еще и pugixml.cpp.
т.е. так g++ xml.cpp pugixml.cpp -o xml

да и #include "pugixml.hpp" - это в случае если этот файл лежит в одной папке с xml.cpp. Если у тебя в src, тогда нужно "/src/pugixml.cpp"

Последний раз редактировалось t4Nk; 01.07.2009 в 21:52..
 
Ответить с цитированием

  #6  
Старый 18.08.2009, 22:26
malik555
Участник форума
Регистрация: 04.02.2009
Сообщений: 132
С нами: 9086760

Репутация: 1
По умолчанию

Цитата:
Сообщение от t4Nk  
malik555, так ты компилмшь только xml.cpp, а надо еще и pugixml.cpp.
т.е. так g++ xml.cpp pugixml.cpp -o xml

да и #include "pugixml.hpp" - это в случае если этот файл лежит в одной папке с xml.cpp. Если у тебя в src, тогда нужно "/src/pugixml.cpp"

В linux все компилится - а как в visual C++ добавить этот файл в проэкт pugixml.cpp ???
 
Ответить с цитированием

  #7  
Старый 18.08.2009, 23:36
t4Nk
Познающий
Регистрация: 23.09.2007
Сообщений: 75
С нами: 9806336

Репутация: 86
По умолчанию

Цитата:
Сообщение от malik555  
В linux все компилится - а как в visual C++ добавить этот файл в проэкт pugixml.cpp ???
открываешь Solution Explorer (Ctrl + Alt + L) и перетягиваешь в Source Files файл pugixml.cpp. И всё )
 
Ответить с цитированием

  #8  
Старый 18.08.2009, 23:58
malik555
Участник форума
Регистрация: 04.02.2009
Сообщений: 132
С нами: 9086760

Репутация: 1
По умолчанию

Цитата:
Сообщение от t4Nk  
открываешь Solution Explorer (Ctrl + Alt + L) и перетягиваешь в Source Files файл pugixml.cpp. И всё )
Что то у меня не получается

Я в программе visual c++ нажимаю Ctrl + Alt + L нечего не происходит !
 
Ответить с цитированием

  #9  
Старый 01.07.2009, 22:07
malik555
Участник форума
Регистрация: 04.02.2009
Сообщений: 132
С нами: 9086760

Репутация: 1
По умолчанию

Спасиб все пашет !

только pugixml.cpp:25:29: warning: missing terminating ' character

что-то вылетает !


А если например нужно изминить "Helo !!!" в переменной xml

Код:
char xml[] = "<root><item><a>Hello !!!</a></item></root>";
что-б осталясь структура xml можно как-то ?
 
Ответить с цитированием

  #10  
Старый 01.07.2009, 22:36
t4Nk
Познающий
Регистрация: 23.09.2007
Сообщений: 75
С нами: 9806336

Репутация: 86
По умолчанию

Не совсем понял тебя
Код:
char xml[] = "<root><item><a>Hello!!!</a></item></root>";
doc.load(xml);
xml_node item = doc.child("root").child("item").child("a").first_child();
cout << item.value() << endl; // Hello!!!
item.set_value("text");
cout << item.value() << endl; // text
doc.print(cout); /* выведет xml-код

<root>
    <item>
        <a>Goodbye!!!</a>
    </item>
</root>
*/
там в архиве есть файл с примерами, можешь посмотреть там возможности либы )
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пишем Jabber-клиент на Delphi lytgeygen Статьи 5 07.06.2009 01:45
обработки XML сообщения полученного по POST burcev PHP 12 20.02.2009 12:22
Как проще отправить xml на сервер используя php5? case PHP 2 10.02.2009 19:50
Подборка сайтов по CSS, XML технологиям и Web2.0 решениям Trinux Избранное 8 06.12.2006 17:05
W3c выпустил обновлённые спецификации стандарта Xml TTN_ Мировые новости. Обсуждения. 0 21.08.2006 21:28



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.