source: CONFIG/publications/ICOLMDZORINCA_CO2_Transport_GMD_2023/XIOS/src/xml_parser.hpp @ 6607

Last change on this file since 6607 was 6607, checked in by acosce, 10 months ago

XIOS used for ICOLMDZORINCA_CO2_Transport_GMD_2023

File size: 1.6 KB
Line 
1#ifndef __XIOS_CXMLParser__
2#define __XIOS_CXMLParser__
3
4/// XIOS headers ///
5#include "xios_spl.hpp"
6#include "exception.hpp"
7#include "cxios.hpp"
8#include "xml_node.hpp"
9
10
11namespace xios
12{
13   namespace xml
14   {
15      /// ////////////////////// Déclarations ////////////////////// ///
16      class CXMLParser
17      {
18         public :
19
20            static void ParseFile(const StdString & filename, const std::set<StdString>& parseList = std::set<StdString>());
21            static void ParseString(const StdString & xmlContent);
22            static void ParseStream(StdIStream & stream, const string& fluxId, const std::set<StdString>& parseList);
23            template <class T>
24               static void ParseInclude(StdIStream & stream, const string& fluxId, T & object);
25
26      }; //class CXMLParser
27/*
28      template <class T>
29         void CXMLParser::ParseInclude(StdIStream & stream, T& object)
30      {
31         StdOStringStream oss;
32         while(!stream.eof() && !stream.fail ())
33            oss.put(stream.get());
34         try
35         {
36            const StdString xmlcontent( oss.str(), 0, oss.str().size()-1 );
37            rapidxml::xml_document<char> doc;
38            doc.parse<0>(const_cast<char*>(xmlcontent.c_str()));
39            CXMLNode node(doc.first_node());
40            object.parse(node);
41         }
42         catch (rapidxml::parse_error & exc)
43         {
44            ERROR("CXMLParser::ParseStream(StdIStream & stream)",
45                  << "RapidXML error : " << exc.what() << " !");
46         }
47      }
48*/
49   }// namespace xml
50} // namespace xios
51
52#endif // __XIOS_CXMLParser__
Note: See TracBrowser for help on using the repository browser.