Różnice między wybraną wersją a wersją aktualną.
Both sides previous revision Previous revision Next revision | Previous revision | ||
xerces_dom [2008/04/16 02:07] kmioduszewski |
xerces_dom [2008/04/16 15:33] (aktualna) kmioduszewski |
||
---|---|---|---|
Linia 1: | Linia 1: | ||
====== biblioteka dla XML: Xerces (DOM) ===== | ====== biblioteka dla XML: Xerces (DOM) ===== | ||
- | **Autor:** //[[kmioduszewski@polibuda.info|Krzysztof Mioduszewski]] 2008/04/14 23:59//\\ \\ | + | **Autor** //Krzysztof Mioduszewski - k.mioduszewski@stud.elka... 2008/04/16 02:12//\\ \\ |
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. | 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. | ||
\\ \\ | \\ \\ | ||
Linia 139: | Linia 139: | ||
</code> | </code> | ||
+ | |||
+ | |||
Linia 161: | Linia 163: | ||
===== DOMDocument, operacje na dokumencie===== | ===== DOMDocument, operacje na dokumencie===== | ||
- | Gdy dokument zostanie sparsowany bez żadnych błędów możemy swobodnie zacząć na nim pracować wykorzystując zawarte w rekomendacjach metody. Poniżje znajduje się kod przykładowej aplikacji, która wczytuje plik XML, wpisuje jego zawartość na ekran, modyfikuje go, a następnie zapisuje zmiany do pliku.\\ \\ | + | Gdy dokument zostanie sparsowany bez żadnych błędów możemy swobodnie zacząć na nim pracować wykorzystując zawarte w rekomendacjach metody. Poniżej znajduje się kod przykładowej aplikacji, która wczytuje plik XML, wypisuje jego zawartość na ekran, modyfikuje go, a następnie zapisuje zmiany do pliku.\\ \\ |
Plik XML - ''notes.xml'', który zostanie wczytany: | Plik XML - ''notes.xml'', który zostanie wczytany: | ||
<code xml> | <code xml> | ||
Linia 204: | Linia 206: | ||
//klasa pomocnicza ułatwiająca współpracę z XMLCh* | //klasa pomocnicza ułatwiająca współpracę z XMLCh* | ||
class UniString { | class UniString { | ||
- | //private : | + | private : |
+ | char* cString; | ||
+ | XMLCh* xmlString; | ||
public : | public : | ||
- | char* cString; | ||
- | XMLCh* xmlString; | ||
UniString(const XMLCh* const str) | UniString(const XMLCh* const str) | ||
: | : | ||
Linia 482: | Linia 483: | ||
try { | try { | ||
- | DOMtest* DOM = new DOMtest("notes.xml"); | + | DOMtest DOM("notes.xml"); |
//incjacja prasera itp. | //incjacja prasera itp. | ||
- | DOM->init(); | + | DOM.init(); |
//pobieranie wartości, wydruk na ekranie | //pobieranie wartości, wydruk na ekranie | ||
- | DOM->print(std::cout); | + | DOM.print(std::cout); |
//dodanie notki | //dodanie notki | ||
- | DOM->modify(); | + | DOM.modify(); |
//zapisu do pliku | //zapisu do pliku | ||
- | DOM->write("notes2.xml"); | + | DOM.write("notes2.xml"); |
} catch(std::runtime_error& e) { | } catch(std::runtime_error& e) { | ||
std::cerr << e.what() << std::endl; | std::cerr << e.what() << std::endl; |