1 #ifndef ots_HttpXmlDocument_h
2 #define ots_HttpXmlDocument_h
4 #include "otsdaq/XmlUtilities/XmlDocument.h"
8 #include <xercesc/dom/DOMElement.hpp>
9 #include <xercesc/parsers/XercesDOMParser.hpp>
17 HttpXmlDocument (std::string cookieCode =
"", std::string displayName =
"");
22 void setHeader (std::string cookieCode =
"", std::string displayName =
"");
24 xercesc::DOMElement* getRootDataElement (
void) {
return dataElement_; }
26 xercesc::DOMElement* addTextElementToData (
const std::string& field,
const std::string& value =
"");
27 xercesc::DOMElement* addBinaryStringToData (
const std::string& field,
const std::string& binary);
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);
44 void recursiveAddElementToParent (xercesc::DOMElement* child, xercesc::DOMElement* parent,
bool html =
false);
45 void recursiveFindAllElements (xercesc::DOMElement* currEl,
const std::string& field, std::vector<std::string>* retVec);
46 void recursiveFindAllElements (xercesc::DOMElement* currEl,
const std::string& field, std::vector<xercesc::DOMElement*>* retVec);
48 void recursiveOutputXmlDocument (xercesc::DOMElement* currEl,
49 std::ostringstream* out,
50 bool dispStdOut =
false,
51 std::string tabStr =
"",
52 bool allowWhiteSpace =
false);
53 void recursiveFixTextFields (xercesc::DOMElement* currEl);
54 std::string recursiveFindElementValue (xercesc::DOMElement* currEl,
55 const std::string& field,
56 const unsigned int occurance,
58 xercesc::DOMElement* recursiveFindElement (xercesc::DOMElement* currEl,
59 const std::string& field,
60 const unsigned int occurance,
63 xercesc::DOMElement* headerElement_;
64 xercesc::DOMElement* dataElement_;
66 const std::string headerTagName_;
67 const std::string dataTagName_;
68 const std::string cookieCodeTagName_;
69 const std::string displayNameTagName_;
74 #endif // ots_HttpXmlDocument_h