XercesDomWritingContext.hxx
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef _XercesDomWritingContext_hxx_
00023 #define _XercesDomWritingContext_hxx_
00024
00025 #include <xercesc/dom/DOMText.hpp>
00026 #include <xercesc/dom/DOMDocument.hpp>
00027 #include <xercesc/dom/DOMElement.hpp>
00028 #include "XercesEncodings.hxx"
00029
00030 namespace CLAM
00031 {
00032 class XercesDomDocumentHandler;
00033
00038 class XercesDomWritingContext
00039 {
00040 xercesc::DOMElement * _currentElement;
00041 XercesDomWritingContext * _parent;
00042 public:
00043 XercesDomWritingContext(xercesc::DOMElement * element)
00044 {
00045 _parent = 0;
00046 _currentElement = element;
00047 }
00048 XercesDomWritingContext(XercesDomDocumentHandler & docHandler);
00049
00050 XercesDomWritingContext(XercesDomWritingContext * parent, const char * name)
00051 {
00052 _parent = parent;
00053 xercesc::DOMElement * parentElement = parent->_currentElement;
00054 _currentElement = parentElement->getOwnerDocument()->createElement(U(name));
00055 parentElement->appendChild(_currentElement);
00056 }
00057
00058 XercesDomWritingContext * release()
00059 {
00060 return _parent;
00061 }
00062
00063 void addAttribute(const char * name, const char * value)
00064 {
00065 _currentElement->setAttribute(U(name),U(value));
00066 }
00067 void addContent(const char * content)
00068 {
00069 xercesc::DOMText * domContent = _currentElement->getOwnerDocument()->createTextNode(U(content));
00070 _currentElement->appendChild(domContent);
00071 }
00072 };
00073
00074 }
00075
00076 #endif//_XercesDomWritingContext_hxx_
00077
00078