Ha ezzel megvagyunk akkor a stream olvasása már igen egyszerű:
// ha a beolvasás sikeres, a visszatérési érték true, egyébként false
bool ParseStream( istream &is )
{
// COM objectek használata
if ( FAILED(CoInitialize(NULL)) )
return false;
// XML olvasó osztály készítése
ISAXXMLReader * reader = 0;
if ( FAILED( CoCreateInstance( __uuidof(SAXXMLReader60), NULL, CLSCTX_ALL, __uuidof(ISAXXMLReader),(void**) &reader ) ) )
{
CoUninitialize()
return false;
}
// STL stream alapú osztály készítése
ISequentialStream * my_stream = new vtkSequentialStream(is);
// tartalom kezelő osztály készítése
ISAXContentHandler * content_handler = new vtkContentHandler;
// referencia számlálók 1-re állítása
my_stream->AddRef();
content_handler->AddRef();
// tartalom kezelőosztály hozzáadása
if ( FAILED( reader->putContentHandler( content_handler ) ) )
{
// ha nem sikerül, felszabadítás és kilépés
my_stream->Release();
content_handler->Release();
reader->Release();
return false;
}
// bemeneti változó beállítása
VARIANT var;
var.vt = VT_UNKNOWN;
var.punkVal = my_stream;
VARIANT_BOOL success = FALSE;
// stream olvasása
bool value = SUCCEEDED( reader->parse( var ) );
// felszabadítás és kilépés
my_stream->Release();
content_handler->Release();
reader->Release();
return ( value && ( success != VARIANT_FALSE ) );
}
- naszta blogja
- A hozzászóláshoz be kell jelentkezni
- 1321 megtekintés
Hozzászólások
XMPP?
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni
Alapvetően célom minél kevesebb "3rd party tool" használata. Jelenleg Windows-os programot írok és ezzel a módszerrel semmilyen külső könyvtárra nem szorulok rá, miközben az XML parser-en kívül gyakorlatilag szabványos kódot hegesztek. Ha ContentHandler osztályt ügyesen írod, akkor Linux alatt is jó lehetsz egy sima libxml2-vel.
--
http://www.naszta.hu
- A hozzászóláshoz be kell jelentkezni
Ehhhm. A XML+Stream kombonal arra gondoltam, hogy XMPP protokollt akarsz csinalni, mert streaming XML altalaban annal van. Erre volt a kerdes.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni
Ja, nem. Amihez nekiáltam sz@rakodni az egy saját log rendszer. Így a "log" fájl egy XHTML fájl, ami roppant ügyesen használható egy sima böngészőben is. :)
--
http://www.naszta.hu
- A hozzászóláshoz be kell jelentkezni
Fu, csak en ijedek meg, ha valami ilyesmire akarjak hasznalni az XML-t? :)
----------------
Lvl86 Troll
- A hozzászóláshoz be kell jelentkezni
Az XML írás azért annyira nem nagy kaland. Nem több, mint egy sima log... :)
--
http://www.naszta.hu
- A hozzászóláshoz be kell jelentkezni
Persze, csak azt utána parseolni kell, meg minden nyűgje van, amit ugyan megcsinálnak a libek, csakhát na...
----------------
Lvl86 Troll
- A hozzászóláshoz be kell jelentkezni
Elég kényelmes betölteni simán egy böngészőbe. Vagy egy sima CSS-sel szűrni...
--
http://www.naszta.hu
- A hozzászóláshoz be kell jelentkezni
Láttál már 2 gb-s logfilet? :)
----------------
Lvl86 Troll
- A hozzászóláshoz be kell jelentkezni
Pedig vegre egy ertelmes otlet. A XHTML bongeszoben is olvashato, plusz mivel XML, rengeteg egyeb infot is el lehet a logokba rejteni, amit pl. JS-sel elo lehet hozni.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni
Persze, csak logot nem feltétlen böngészőben szokás nézni. Ott azért számít az, hogy grepelhető legyen és tsi.
Plain text erre alkalmasabb (és bár sokan kardoskodnak ellene, de szerintem bizonyos esetekben az SQL is megfelelő tud lenni, főleg, ha sokat kell benne keresni, szűrni ÉS rendezni, összesíteni.)
Amit te mondasz, arra normális ember külön alkalmazást/szkriptet/bármi random megjelenítőt ír.
----------------
Lvl86 Troll
- A hozzászóláshoz be kell jelentkezni
Perl-ben/Python-ban/Ruby-ban nem nagy kaland megirni egy XML-es konzolos megjelenitot, amiben aztan tudsz greppelni.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni
Ha már Windows: PowerShell. :)
--
http://www.naszta.hu
- A hozzászóláshoz be kell jelentkezni
Az egészben az a gyönyörű, hogy mindenféle plusz szutyok nélkül is lehet "grep"-elni...
...plain textben.
És mint ahogy szó volt róla: itt Windows és only-MS dolgok a preferáltak a feladatnál. Nem kell már megint mindenhova a nyomorék Pythont erőltetni.
----------------
Lvl86 Troll
- A hozzászóláshoz be kell jelentkezni
Windowsra igen, oda jo a PowerShell, en igazabol Linux-ra gondoltam, ahol nincs ilyen josag.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni
Nekem inkább az tűnt fel, hogy tökmindegy mi a feladat, mindig előkerül a Python nálad...
----------------
Lvl86 Troll
- A hozzászóláshoz be kell jelentkezni
Mert en sokszor mindket rendszer ala dolgozok, es ott nem a PowetShell a kozos nyelv. Raadasul nekem a legtobb gepemen fel is van rakva a Python is, meg a Ruby is.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni
XHTML lehetne XML + XSLT, talán egy fokkal elegánsabb.
--
Don't be an Ubuntard!
- A hozzászóláshoz be kell jelentkezni