Narzędzia użytkownika

Narzędzia witryny


xerces_dom

To jest stara wersja strony!


biblioteka dla XML: Xerces (DOM)

Xerces-C++ DOM jest częścią Xerces-C++ API zaprojektowanego do współpracy z plikami w formacie XML. API umożliwia parsowania, manipulowanie, walidowanie oraz generowanie poprawnych dokumentów.

Biblioteka DOM jest implementacją następujących rekomendacji W3C:

Oraz zawiera częściową implementację (opartą o W3C Working Draft 09 April 2002) :

Więcej informacji na stronie projektu http://xerces.apache.org/xerces-c/. Na stronie znajdują się źródła, oraz skompilowane wersje biblioteki na różne platformy. Kompletna instrukcja instalacji na różnych platformach znajduje się tutaj.

Informacje wstępne

Nagłówki, które powinniśmy dołączyć w przypadku pisania typowych aplikacji korzystających z Xerces DOM znajdują się poniżej:

#include <xercesc/util/PlatformUtils.hpp>
#include <xercesc/util/XMLString.hpp>
#include <xercesc/dom/DOM.hpp> 
#include <xercesc/parsers/XercesDOMParser.hpp>

Xerces posiada własny typ znakowy XMLCh, który jest używany zamiast char i std::string. Do konwersji pomiędzy typami char* a XMLCh* (w obie strony) używana jest funkcja XMLString::transcode(). Pamięć zaalokowaną na łańcuchy należy zwalniać za pomocą funkcji XMLString::release().

Przed użyciem jakichkolwiek klas Xerces konieczne jest wywołanie metody XMLPlatformUtils::Initialize(). Po zakończeniu korzystania z Xerces powinno się wywołać XMLPlatformUtils::Terminate(). Poniżej znajduje się uproszczona struktura programu (warto zwrócić uwagę na uzycie transcode()).

#include <xercesc/util/PlatformUtils.hpp>
#include <xercesc/util/XMLString.hpp>
#include <xercesc/dom/DOM.hpp> 
#include<xercesc/parsers/XercesDOMParser.hpp>
// ...
#include <iostream>  
 
int main()
{
	try { 
		//incjalizacja Xerces-C++
		xercesc::XMLPlatformUtils::Initialize();
	}
	catch (const xercesc::XMLException& e) {
		//konwersja  z XMLCh* na char*
		char* msg = xercesc::XMLString::transcode(e.getMessage()) ;
 
		std::cerr << "Init Error: " << msg << std::endl;
		//zwolnienie pamieci
		xercesc::XMLString::release(&msg) ;
		return 1;
	}
 
	// Tutaj korzystamy z mozliwosci Xerces-C++ 
 
	xercesc::XMLPlatformUtils::Terminate();
 
	return 0;
}

przykład itd.

cdn..

xerces_dom.1208190054.txt.gz · ostatnio zmienione: 2008/04/14 18:20 przez kmioduszewski