22 std::pair< std::string, std::string >
const
25 std::pair< std::string, std::string >
const
28 std::pair< std::string, std::string >
const
31 std::pair< std::string, std::string >
const
37 isVerbose( isVerbose ),
39 stringParsingStream(),
40 textStream( &stringParsingStream ),
46 fullElementContentAsFound(
"" ),
47 fullOpeningTagAsFound(
"" ),
48 elementAttributeMap(),
52 streamIsGood( false ),
55 newlinesBeforeMarkup( 0 ),
59 currentQuoteChar(
'\'' ),
63 closingTagsToFind( 0 ),
94 <<
"BOL::error! AsciiXmlParser::openRootElementOfFile( " << fileName
95 <<
" ) could not open the file!";
96 std::cout << std::endl;
108 <<
"BOL::error! AsciiXmlParser::openRootElementOfFile( " << fileName
109 <<
" ) could not find a root element!";
110 std::cout << std::endl;
136 <<
"BOL::error! AsciiXmlParser::closeMarkup( " << startPosition
137 <<
" ) could not find the end of a markup!";
138 std::cout << std::endl;
149 while( std::string::npos ==
parseEnd )
162 <<
"BOL::error! AsciiXmlParser::closeMarkup( " << startPosition
163 <<
") could not find the end of a markup!";
164 std::cout << std::endl;
179 std::pair< std::string, std::string >
const& delimitingStrings )
201 <<
"BOL::error! AsciiXmlParser::ignoreDelimited( \""
202 << delimitingStrings.first <<
", " << delimitingStrings.second
203 <<
"\" ) could not find the ending delimiter!";
204 std::cout << std::endl;
215 std::pair< std::string, std::string >
const& delimitingStrings )
242 <<
"BOL::error! AsciiXmlParser::ignoreDelimited( \""
243 << delimitingStrings.first <<
", " << delimitingStrings.second
244 <<
"\" ) could not find the ending delimiter!";
245 std::cout << std::endl;
315 <<
"BOL::error! AsciiXmlParser::parseOpeningTag() found an attribute"
317 <<
"\") without a value!";
318 std::cout << std::endl;
341 <<
"BOL::error! AsciiXmlParser::parseOpeningTag() found an attribute"
343 <<
"\") without a well-formed value (no closing quote mark)!";
344 std::cout << std::endl;
441 <<
"BOL::error! AsciiXmlParser::skipPrologAndOpenRootElement() could"
442 <<
" not find any valid root element tag markup!";
443 std::cout << std::endl;
467 <<
"BOL::error! AsciiXmlParser::skipPrologAndOpenRootElement() could"
468 <<
" not find any valid root element tag markup!";
469 std::cout << std::endl;
474 while( std::string::npos != unclosedSubmarkupOpener )
487 <<
"BOL::error! AsciiXmlParser::skipPrologAndOpenRootElement()"
488 <<
" could not find any valid root element tag markup!";
489 std::cout << std::endl;
494 unclosedSubmarkupOpener );
514 <<
"BOL::error! AsciiXmlParser::skipPrologAndOpenRootElement()"
515 <<
" could not find any valid root element tag markup!";
516 std::cout << std::endl;
535 <<
"BOL::error! AsciiXmlParser::skipPrologAndOpenRootElement() could"
536 <<
" not find any valid root element tag markup!";
537 std::cout << std::endl;
bool parseTagName(std::string &nameDestination)
bool discardToNextMarkup()
std::map< std::string, std::string > elementAttributeMap
std::string currentTagName
static std::pair< std::string, std::string > const piDelimiter
static std::pair< std::string, std::string > const doctypeDelimiter
bool recordDelimited(std::pair< std::string, std::string > const &delimitingStrings)
bool closeMarkup(size_t const startPosition=0)
bool ignoreDelimited(std::pair< std::string, std::string > const &delimitingStrings)
std::string fullElementContentAsFound
bool compareMarkupEnd(std::string const &comparisonString) const
bool recordTo(std::string &recordingString, char const endChar)
std::ifstream fileParsingStream
static std::pair< std::string, std::string > const cdataDelimiter
static char const markupOpener
std::pair< int, int > rootLineRange
bool eraseQuotedStringsInMarkup(size_t const startPosition)
std::string fullOpeningTagAsFound
bool compareMarkupStart(std::string const &comparisonString) const
static std::string const allowedXmlWhitespaceChars
static char const markupCloser
std::pair< std::string, std::string > currentAttribute
void recordTagTo(std::string &recordingString)
bool recordToEndOfElement()
bool openRootElementOfFile(std::string const &fileName)
AsciiXmlParser(bool const isVerbose=false)
static std::string const allowedXmlQuoteChars
static char const tagCloser
std::istream * textStream
bool skipPrologAndOpenRootElement()
std::map< std::string, std::string > rootAttributeMap
std::pair< int, int > elementLineRange
static std::pair< std::string, std::string > const commentDelimiter