przejście do zawartości
zpr c++ quick reference
Narzędzia użytkownika
Zarejestruj się!
Zaloguj
Narzędzia witryny
Narzędzia
Pokaż stronę
Poprzednie wersje
Odnośniki
Ostatnie zmiany
Menadżer multimediów
Indeks
Zaloguj
Zarejestruj się!
Ostatnie zmiany
Menadżer multimediów
Indeks
Ślad:
xerces_dom
Ta strona jest tylko do odczytu. Możesz wyświetlić źródła tej strony ale nie możesz ich zmienić.
====== 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: * [[http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/|Document Object Model (DOM) Level 1 Specification]] * [[http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/|Document Object Model (DOM) Level 2 Core Specification]] * [[http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113/|Document Object Model (DOM) Level 2 Traversal and Range Specification]] Oraz zawiera częściową implementację (opartą o W3C Working Draft 09 April 2002) : * [[http://www.w3.org/TR/2002/WD-DOM-Level-3-Core-20020409/|Document Object Model (DOM) Level 3 Core Specification]] * [[http://www.w3.org/TR/2002/WD-DOM-Level-3-ASLS-20020409/|Document Object Model (DOM) Level 3 Abstract Schemas and Load and Save Specification]] 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ę [[http://xerces.apache.org/xerces-c/install.html|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: <code cpp> #include <xercesc/util/PlatformUtils.hpp> #include <xercesc/util/XMLString.hpp> #include <xercesc/dom/DOM.hpp> #include <xercesc/parsers/XercesDOMParser.hpp> </code> 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()''). <code cpp> #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; } </code> ===== XercesDOMParser ===== Jest to parser umożliwiający wczytanie do pamięci struktury pliku XML za pomocą metody ''parse()''. Po czym uzyskujemy dostęp do obiektu ''DOMDocument'', po którym możemy poruszać się wykorzystując zaimplementowane w zgodzie z rekomendacjami W3C metody. Poniżej przykładowe fragmenty kodu dotyczącego inicjalizacji i korzystania z XercesDOMParser. <code cpp> XercesDOMParser* parser = new XercesDOMParser(); parser->setValidationScheme(XercesDOMParser::Val_Auto); //uruchamia walidację, jeżeli dostępne jest DTD (wewnętrzne/zewnętrzne) parser->setDoNamespaces(true); char* xmlFile = "file.xml"; try { parser->parse(xmlFile); } catch( const xercesc::XMLException& e ){ //... } catch( const xercesc::DOMException& e ){ //... } catch (...) { //... } </code>
xerces_dom.1208195679.txt.gz
· ostatnio zmienione: 2008/04/14 19:54 przez
kmioduszewski
Narzędzia strony
Pokaż stronę
Poprzednie wersje
Odnośniki
Do góry