1 #ifndef ots_HttpXmlDocument_h
2 #define ots_HttpXmlDocument_h
4 #include "otsdaq-core/XmlUtilities/XmlDocument.h"
6 #include <xercesc/parsers/XercesDOMParser.hpp>
7 #include <xercesc/dom/DOMElement.hpp>
23 void setHeader (std::string cookieCode=
"", std::string displayName=
"");
25 xercesc::DOMElement* getRootDataElement () {
return dataElement_; }
27 xercesc::DOMElement* addTextElementToData (
const std::string &field,
const std::string &value =
"");
31 std::string getMatchingValue (
const std::string &field,
const unsigned int occurance=0);
32 void getAllMatchingValues (
const std::string &field, std::vector<std::string> &retVec);
33 xercesc::DOMElement* getMatchingElement (
const std::string &field,
const unsigned int occurance=0);
34 xercesc::DOMElement* getMatchingElementInSubtree (xercesc::DOMElement *currEl,
const std::string &field,
const unsigned int occurance = 0);
35 void getAllMatchingElements (
const std::string &field, std::vector< xercesc::DOMElement*> &retVec);
36 void outputXmlDocument (std::ostringstream *out,
bool dispStdOut=
false,
bool allowWhiteSpace=
false);
37 bool loadXmlDocument (
const std::string &filePath);
39 unsigned int getChildrenCount (xercesc::DOMElement* parent = 0);
41 void removeDataElement (
unsigned int dataChildIndex=0);
45 void recursiveAddElementToParent (xercesc::DOMElement* child, xercesc::DOMElement* parent,
bool html=
false);
46 void recursiveFindAllElements (xercesc::DOMElement *currEl,
const std::string &field, std::vector<std::string> *retVec);
47 void recursiveFindAllElements (xercesc::DOMElement *currEl,
const std::string &field, std::vector<xercesc::DOMElement*> *retVec);
49 void recursiveOutputXmlDocument (xercesc::DOMElement *currEl, std::ostringstream *out,
bool dispStdOut=
false, std::string tabStr=
"",
bool allowWhiteSpace=
false);
50 void recursiveFixTextFields (xercesc::DOMElement *currEl);
51 std::string recursiveFindElementValue (xercesc::DOMElement *currEl,
const std::string &field,
const unsigned int occurance,
unsigned int &count);
52 xercesc::DOMElement* recursiveFindElement (xercesc::DOMElement *currEl,
const std::string &field,
const unsigned int occurance,
unsigned int &count);
56 xercesc::DOMElement* headerElement_;
57 xercesc::DOMElement* dataElement_;
59 const std::string headerTagName_;
60 const std::string dataTagName_;
61 const std::string cookieCodeTagName_;
62 const std::string displayNameTagName_;
67 #endif //ots_HttpXmlDocument_h