PDA

Visualizza la versione completa : [C++] Leggere e interrogare file XML


IlCineasta
02-12-2005, 15:45
Ciao a tutti

vi espondo il mio problema...

io ho un file XML e vorrei leggere da questo file, magari potendo anche fare delle "query" sui dati interni.

avete qualche suggerimento...

sto programmando naturalmente in C++ su una Debian Testing.

sono ben accetti suggerimenti vari...

io ho pensato a libxml++ solo che mi da un po' di problemi nel senso che non compila i file di esempio del sito di libxml++ dandomi errori del tipo:



/tmp/ccWJDO3l.o(.text+0x1c): In function `main':
: undefined reference to `Glib::ustring::ustring[in-charge]()'
/tmp/ccWJDO3l.o(.text+0x39): In function `main':
: undefined reference to `Glib::ustring::operator=(char const*)'
/tmp/ccWJDO3l.o(.text+0x4e): In function `main':
: undefined reference to `Glib::ustring::operator=(char const*)'
/tmp/ccWJDO3l.o(.text+0x59): In function `main':
: undefined reference to `MySaxParser::MySaxParser[in-charge]()'
/tmp/ccWJDO3l.o(.text+0x6c): In function `main':
: undefined reference to `xmlpp::Parser::set_substitute_entities(bool)'
/tmp/ccWJDO3l.o(.text+0x7e): In function `main':
: undefined reference to `xmlpp::SaxParser::parse_file(Glib::ustring const&)'
/tmp/ccWJDO3l.o(.text+0xa3): In function `main':
: undefined reference to `MySaxParser::~MySaxParser [in-charge]()'
/tmp/ccWJDO3l.o(.text+0xbc): In function `main':
: undefined reference to `MySaxParser::~MySaxParser [in-charge]()'
/tmp/ccWJDO3l.o(.text+0x168): In function `main':
: undefined reference to `Glib::ustring::c_str() const'
/tmp/ccWJDO3l.o(.text+0x18d): In function `main':
: undefined reference to `MySaxParser::MySaxParser[in-charge]()'
/tmp/ccWJDO3l.o(.text+0x1d7): In function `main':
: undefined reference to `Glib::ustring::ustring[in-charge](char const*, unsigned)'
/tmp/ccWJDO3l.o(.text+0x1ec): In function `main':
: undefined reference to `xmlpp::SaxParser::parse_chunk(Glib::ustring const&)'
/tmp/ccWJDO3l.o(.text+0x208): In function `main':
: undefined reference to `Glib::ustring::~ustring [in-charge]()'
/tmp/ccWJDO3l.o(.text+0x21e): In function `main':
: undefined reference to `Glib::ustring::~ustring [in-charge]()'
/tmp/ccWJDO3l.o(.text+0x244): In function `main':
: undefined reference to `xmlpp::SaxParser::finish_chunk_parsing()'
/tmp/ccWJDO3l.o(.text+0x25d): In function `main':
: undefined reference to `MySaxParser::~MySaxParser [in-charge]()'
/tmp/ccWJDO3l.o(.text+0x270): In function `main':
: undefined reference to `MySaxParser::~MySaxParser [in-charge]()'
/tmp/ccWJDO3l.o(.text+0x2ad): In function `main':
: undefined reference to `Glib::ustring::~ustring [in-charge]()'
/tmp/ccWJDO3l.o(.text+0x2d0): In function `main':
: undefined reference to `Glib::ustring::~ustring [in-charge]()'
/tmp/ccWJDO3l.o(.gcc_except_table+0x5c): undefined reference to `typeinfo for xmlpp::exception'
collect2: ld returned 1 exit status



avete idee al riguardo?

grazie per l'aiuto

IlCineasta

IlCineasta
05-12-2005, 14:49
dopo un weekend di testate sul muro :dhò:

uppo alla ricerca di soluzioni...

IlCineasta

Ikitt
05-12-2005, 15:25
Originariamente inviato da IlCineasta
[...]
io ho un file XML e vorrei leggere da questo file, magari potendo anche fare delle "query" sui dati interni.
[...]
io ho pensato a libxml++ solo che mi da un po' di problemi nel senso che non compila i file di esempio del sito di libxml++ dandomi errori del tipo:
[...]
avete idee al riguardo?

Con quale comando compili il codice incriminato?

IlCineasta
06-12-2005, 17:19
ho trovato la soluzione

Mister Apache mi è venuto in aiuto con un bel parser per c++ chiamato xerces

ora il problema era nel linker...

ma non sapevo che bisognava compilare così

g++ miofile.cpp -lxerces-c

taaac ora funziona... da qui a fare quello che voglio fare (parsare l'intero documento per cercare le cose che mi servono) beh ci vogliono un altro paio di maniche...

ve farò sape'...

HIEI
23-01-2006, 11:27
Mi intrufolo nella discussione per sapere se hai risolto in qualche modo :D

Loading