PDA

Visualizza la versione completa : [C++] Rapido parsing xml


nicholas086
16-05-2012, 11:49
Ciao a tutti!

Come da titolo, ho un programma che mi salva dei dati un buffer xml (una variabile char*). Eventualmente posso salvare il tutto su un normale file xml.

Quello di cui ho bisogno è un metodo rapido per processare questo minuscolo xml senza perdermi nei meandri troppo tecnici, anche perché ho poco tempo per farlo.
In pratica devo solo recuperare pochi dati dall'xml. Esisterà una libreria, o un modo, per processarlo velocemente!

Grazie!

MItaly
16-05-2012, 12:15
Ovviamente quello che ti serve è un parser XML; a seconda di come devi estrarre i dati, ti serve un parser DOM (parser "globale", ottieni la struttura del documento in una struttura ad albero, visitabile via codice) o un parser SAX (parser sequenziale, ottieni gli elementi man mano che vengono parsati). Se devi estrarre dati specifici in maniera rapida può essere comodo usare anche una libreria che ti fornisca supporto per XPath, un linguaggio di individuazione nodi nell'XML (un po' l'SQL dell'XML).

In ogni caso, un grande classico per il parsing XML in C++ è Xerces-C++ (http://xerces.apache.org/xerces-c/), che fornisce parser DOM, SAX e un supporto di base ad XPath 1; per un supporto completo a XPath c'è Xalan-C++ (http://xml.apache.org/xalan-c/overview.html).

nicholas086
17-05-2012, 06:59
Benissimo grazie!
Proverò a dare un'occhiata a XPath con Xerces. Conoscevo DOM e SAX, ma XPath no.

Loading