Różnice między wybraną wersją a wersją aktualną.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
xerces_dom [2008/04/15 01:18] kmioduszewski |
xerces_dom [2008/04/15 02:01] kmioduszewski |
||
---|---|---|---|
Linia 139: | Linia 139: | ||
</code> | </code> | ||
+ | |||
+ | |||
Linia 277: | Linia 279: | ||
}; | }; | ||
</code> | </code> | ||
+ | ''parser.cpp'' FIXME | ||
+ | <code cpp> | ||
+ | #include "support.h" | ||
+ | xercesc::DOMDocument* parseXML() { | ||
+ | xercesc::XercesDOMParser* parser = new xercesc::XercesDOMParser(); | ||
+ | parser->setValidationScheme(xercesc::XercesDOMParser::Val_Auto); | ||
+ | parser->setDoNamespaces(true); | ||
+ | |||
+ | xercesc::ErrorHandler* errHandler = (xercesc::ErrorHandler*) new myErrorHandler(); | ||
+ | parser->setErrorHandler(errHandler); | ||
+ | |||
+ | UniString src = UniString("dupa.xml"); | ||
+ | try { | ||
+ | parser->parse(src.toXMLString()); | ||
+ | } | ||
+ | catch (...) { | ||
+ | //... | ||
+ | } | ||
+ | |||
+ | if(parser->getErrorCount()==0) { | ||
+ | return parser->getDocument(); | ||
+ | } else { | ||
+ | return NULL; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | int main() { | ||
+ | try { | ||
+ | xercesc::XMLPlatformUtils::Initialize(); | ||
+ | } | ||
+ | catch (const xercesc::XMLException& e) { | ||
+ | std::cerr << UniString(e.getMessage()) << std::endl; | ||
+ | return 1; | ||
+ | } | ||
+ | |||
+ | xercesc::DOMDocument* xmlDoc = parseXML(); | ||
+ | if(xmlDoc == NULL) | ||
+ | return -1; | ||
+ | |||
+ | |||
+ | xercesc::XMLPlatformUtils::Terminate(); | ||
+ | |||
+ | int a; | ||
+ | std::cin >> a; | ||
+ | return 0; | ||
+ | } | ||
+ | </code> | ||
<code cpp> | <code cpp> | ||
//... | //... |