MCPcopy Create free account
hub / github.com/IppClub/Dora-SSR / parse

Method parse

Source/3rdParty/tinyxml2/SAXParser.cpp:59–93  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

57SAXParser::~SAXParser() { }
58
59std::optional<SAXParser::SAXError> SAXParser::parse(const std::string& xmlData) {
60 tinyxml2::XMLError error = _tinyDoc.Parse(xmlData.c_str(), xmlData.size());
61 if (error != tinyxml2::XML_NO_ERROR) {
62 int errorLine = _tinyDoc.GetErrorLine();
63 std::string errorMessage;
64 switch (error) {
65 case tinyxml2::XML_NO_ATTRIBUTE: errorMessage += "no attribute"; break;
66 case tinyxml2::XML_WRONG_ATTRIBUTE_TYPE: errorMessage += "wrong attribute type"; break;
67 case tinyxml2::XML_ERROR_FILE_NOT_FOUND: errorMessage += "file not found"; break;
68 case tinyxml2::XML_ERROR_FILE_COULD_NOT_BE_OPENED: errorMessage += "file could not be opened"; break;
69 case tinyxml2::XML_ERROR_FILE_READ_ERROR: errorMessage += "file read error"; break;
70 case tinyxml2::XML_ERROR_ELEMENT_MISMATCH: errorMessage += "element mismatch"; break;
71 case tinyxml2::XML_ERROR_PARSING_ELEMENT: errorMessage += "parsing element error"; break;
72 case tinyxml2::XML_ERROR_PARSING_ATTRIBUTE: errorMessage += "parsing attribute error"; break;
73 case tinyxml2::XML_ERROR_IDENTIFYING_TAG: errorMessage += "identifying tag error"; break;
74 case tinyxml2::XML_ERROR_PARSING_TEXT: errorMessage += "parsing text error"; break;
75 case tinyxml2::XML_ERROR_PARSING_CDATA: errorMessage += "parsing cdata error"; break;
76 case tinyxml2::XML_ERROR_PARSING_COMMENT: errorMessage += "parsing comment error"; break;
77 case tinyxml2::XML_ERROR_PARSING_DECLARATION: errorMessage += "parsing declaration error"; break;
78 case tinyxml2::XML_ERROR_PARSING_UNKNOWN: errorMessage += "parsing unknown error"; break;
79 case tinyxml2::XML_ERROR_EMPTY_DOCUMENT: errorMessage += "empty document"; break;
80 case tinyxml2::XML_ERROR_MISMATCHED_ELEMENT: errorMessage += "mismatch element"; break;
81 case tinyxml2::XML_ERROR_PARSING: errorMessage += "parsing error"; break;
82 case tinyxml2::XML_CAN_NOT_CONVERT_TEXT: errorMessage += "can not convert text"; break;
83 case tinyxml2::XML_NO_TEXT_NODE: errorMessage += "no text node"; break;
84 default:
85 break;
86 }
87 return SAXError{errorLine, errorMessage};
88 }
89 XmlSaxHander printer;
90 printer.setSAXParser(this);
91 _tinyDoc.Accept(&printer);
92 return std::nullopt;
93}
94
95const char* SAXParser::getBuffer() const {
96 return _tinyDoc.GetCharBuffer();

Callers

nothing calls this directly

Calls 6

GetErrorLineMethod · 0.80
setSAXParserMethod · 0.80
ParseMethod · 0.45
c_strMethod · 0.45
sizeMethod · 0.45
AcceptMethod · 0.45

Tested by

no test coverage detected