Narzędzia użytkownika

Narzędzia witryny


xerces_dom

Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
xerces_dom [2008/04/15 00:26]
kmioduszewski
xerces_dom [2008/04/15 01:18]
kmioduszewski
Linia 139: Linia 139:
  
 </​code> ​ </​code> ​
 +
 +
 +
 +
 +
 +
  
  
Linia 157: Linia 163:
 <​!DOCTYPE notes SYSTEM "​note.dtd">​ <​!DOCTYPE notes SYSTEM "​note.dtd">​
 <notes owner="​John Doe">​ <notes owner="​John Doe">​
- 
    <​note date="​21/​02/​2008">​    <​note date="​21/​02/​2008">​
       <​from>​Jani</​from>​       <​from>​Jani</​from>​
Linia 180: Linia 185:
   <​!ELEMENT body    (#​PCDATA)>​   <​!ELEMENT body    (#​PCDATA)>​
 </​code>​ </​code>​
-Klasy pomocnicze:+Klasy pomocnicze ​''​support.h''​:
 <code cpp> <code cpp>
- +#include <​string>​ 
- +#include <​iostream>​ 
-//klasa pomocnicza ​przechowujaca nazwy tagów oraz atrybutów w formacie ​XMLCh* +#include <​xercesc/​util/​XMLString.hpp>​ 
-class TagNames ​+#include <​xercesc/​sax/​HandlerBase.hpp>​ 
- public: +  
- XMLCh* ​TAG_NOTES+//klasa pomocnicza ​ułatwiająca współpracę z XMLCh* 
- XMLChTAG_NOTE+class UniString ​
- XMLCh* ​TAG_FROM+public : 
- XMLChTAG_HEADING+ UniString(const ​XMLCh* ​const str)  
- XMLCh* TAG_BODY; +
- + cString(xercesc::​XMLString::​transcode(str)),​ 
- XMLCh* ​ATTR_OWNER;​ + xmlString(xercesc::​XMLString::​replicate(str)) 
- XMLCh* ​ATTR_DATE;​ + {} 
- +  
- TagNames()+ UniString(const char* const str) 
 +
 + cString(xercesc::​XMLString::​replicate(str)),​ 
 + xmlString(xercesc::​XMLString::​transcode(str)) 
 + {}  
 +  
 + UniString(const std::​string&​ str) 
 +
 + cString(xercesc::​XMLString::​replicate(str.c_str())),​ 
 + xmlString(xercesc::​XMLString::​transcode(str.c_str())) 
 + {} 
 +  
 + ~UniString()  
 +
 + xercesc::​XMLString::​release(&​cString)
 + xercesc::​XMLString::​release(&​xmlString);​ 
 +
 +  
 + const chartoCString() { return cString} 
 + const XMLCh* ​toXMLString() { return xmlString} 
 +  
 + std::​ostream&​ print(std::​ostream&​ s) const  
 +
 + s << cString; 
 + return(s);​ 
 +
 +  
 +private : 
 + char  cString
 + XMLCh* ​ ​xmlString;​ 
 +  
 +}; 
 +  
 +std::​ostream&​ operator<<​( std::​ostream&​ s, const UniString&​ str ) { return str.print(s);​ } 
 +  
 +//klasa pomocnicza przechowująca nazwy tagów oraz atrybutów  
 +class docNames { 
 +public: 
 + const UniString TAG_NOTES;​ 
 + const UniString TAG_NOTE; 
 + const UniString TAG_FROM; 
 + const UniString TAG_HEADING;​ 
 + const UniString ​TAG_BODY; 
 +  
 + const UniString ​ATTR_OWNER;​ 
 + const UniString ​ATTR_DATE;​ 
 +  
 + docNames()
  :  :
- TAG_NOTES(xercesc::​XMLString::​transcode("​notes"​)), + TAG_NOTES("​notes"​),​ 
- TAG_NOTE(xercesc::​XMLString::​transcode("​note"​)), + TAG_NOTE("​note"​),​ 
- TAG_FROM(xercesc::​XMLString::​transcode("​from"​)), + TAG_FROM("​from"​),​ 
- TAG_HEADING(xercesc::​XMLString::​transcode("​heading"​)), + TAG_HEADING("​heading"​),​ 
- TAG_BODY(xercesc::​XMLString::​transcode("​body"​)), + TAG_BODY("​body"​),​ 
-  +  
- ATTR_OWNER(xercesc::​XMLString::​transcode("​owner"​)), + ATTR_OWNER("​owner"​),​ 
- ATTR_DATE(xercesc::​XMLString::​transcode("​date"​))+ ATTR_DATE("​date"​)
  {}  {}
 +};
  
- ~TagNames() throw(){ +class myErrorHandler : xercesc::​HandlerBase { 
- + void warningconst xercesc::​SAXParseException&​ e ) {  
- try{ + std::cout << "​warning" << UniString(e.getMessage()) 
- xercesc::XMLString::release(&​TAG_NOTES); +   << " | line" << e.getLineNumber() << std::endl
- xercesc::​XMLString::​release(&​TAG_NOTE); +
- xercesc::XMLString::​release(&TAG_FROM); + void error( const xercesc::SAXParseException{ 
- xercesc::XMLString::release(&​TAG_HEADING); + std::cout << "error" << UniString(e.getMessage() 
- xercesc::​XMLString:​:release(&​TAG_BODY); + << " | line" << e.getLineNumber() << std::endl
-  + } 
- xercesc::XMLString::​release(&ATTR_OWNER); + void fatalError( const xercesc::SAXParseException{ 
- xercesc::XMLString::release(&​ATTR_DATE);​ + std::cout << "​fatalError" << UniString(e.getMessage())  ​ 
- }catch... ){ + << " ​| line: " ​<<​e.getLineNumber() ​<< std::​endl;​ 
- std::​cerr ​<< "TagNames destructor error" << std::endl ; +
- }  + void resetErrors() {
- }  +};
-}+
 </​code>​ </​code>​
  
xerces_dom.txt · ostatnio zmienione: 2008/04/16 15:33 przez kmioduszewski