CMS 3D CMS Logo

ESGainXMLTranslator.cc
Go to the documentation of this file.
6 #include <xercesc/dom/DOMNode.hpp>
7 #include <xercesc/dom/DOM.hpp>
8 #include <xercesc/parsers/XercesDOMParser.hpp>
9 #include <xercesc/util/XMLString.hpp>
10 #include <xercesc/sax/SAXException.hpp>
11 #include <xercesc/framework/LocalFileFormatTarget.hpp>
12 #include <iostream>
13 #include <sstream>
14 #include <fstream>
15 
16 using namespace XERCES_CPP_NAMESPACE;
17 using namespace xuti;
18 using namespace std;
19 
22 
23  std::fstream fs(filename.c_str(), ios::out);
24  fs << dumpXML(header, record);
25 
27 
28  return 0;
29 }
30 
32  unique_ptr<DOMImplementation> impl(DOMImplementationRegistry::getDOMImplementation(cms::xerces::uStr("LS").ptr()));
33 
34  DOMLSSerializer* writer = impl->createLSSerializer();
35  if (writer->getDomConfig()->canSetParameter(XMLUni::fgDOMWRTFormatPrettyPrint, true))
36  writer->getDomConfig()->setParameter(XMLUni::fgDOMWRTFormatPrettyPrint, true);
37 
38  DOMDocumentType* doctype = impl->createDocumentType(cms::xerces::uStr("XML").ptr(), nullptr, nullptr);
39  DOMDocument* doc = impl->createDocument(nullptr, cms::xerces::uStr(ADCToGeVConstant_tag.c_str()).ptr(), doctype);
40 
41  DOMElement* root = doc->getDocumentElement();
42 
43  xuti::writeHeader(root, header);
44 
46 
47  std::string dump = cms::xerces::toString(writer->writeToString(root));
48  doc->release();
49  doctype->release();
50  writer->release();
51 
52  return dump;
53 }
static std::string dumpXML(const EcalCondHeader &header, const ESGain &record)
def dumpXML(db, tag, since, filename='dump.xml')
JetCorrectorParameters::Record record
Definition: classes.h:7
Definition: ESGain.h:7
void xercesTerminate()
Definition: Xerces.cc:23
void xercesInitialize()
Definition: Xerces.cc:18
void WriteNodeWithValue(xercesc::DOMNode *parentNode, const std::string &tag, const T &value)
write a node with
const std::string ESGain_tag("ESGain")
std::string toString(XMLCh const *toTranscode)
const std::string ADCToGeVConstant_tag("EcalADCToGeVConstant")
void writeHeader(xercesc::DOMNode *parentNode, const EcalCondHeader &header)
write
ZStr< XMLCh > uStr(char const *str)
static int writeXML(const std::string &filename, const EcalCondHeader &header, const ESGain &record)
float getESGain() const
Definition: ESGain.h:13