Adrian's point is that if the input file is simple enough, something like this may do what you want.
Code:
#include <fstream>
#include <iostream>
#include <sstream>
#include <string>
int main() {
std::ifstream in("input.xaml");
bool found_start = false;
std::string line;
// Find start of flowchart variables.
while (std::getline(in, line)) {
std::istringstream iss(line);
std::string token;
iss >> token;
if (token == "<Flowchart.Variables>") {
found_start = true;
break;
}
}
if (!found_start)
return 1;
// Extract x:String names.
while (std::getline(in, line)) {
std::istringstream iss(line);
std::string token;
std::getline(iss, token, '=');
if (token == "</Flowchart.Variables>")
break;
if (token == "<Variablex:TypeArguments") {
std::getline(iss, token, '"');
std::getline(iss, token, '"');
if (token == "x:String") {
std::getline(iss, token, '"');
std::getline(iss, token, '"');
std::cout << token << '\n';
}
}
}
}