#include <iostream>
#include <fstream>
#include <regex>
#include <string>
#include <iterator>
int main()
{
std::ifstream ifs("metadata.xml");
std::string metadata( (std::istreambuf_iterator<char>(ifs) ),
(std::istreambuf_iterator<char>() ) );
float scale = 1;
std::regex rgx("<Item name=\"SCALE\"[^>]*>(.*?)<\\/Item>");
std::smatch match;
if (std::regex_search(metadata.cbegin(), metadata.cend(), match, rgx)) {
scale = std::stof(match[1].str());
};
std::cout << scale << std::endl;
}
<GDALMetadata>
<Item name="BANDWIDTH"></Item>
<Item name="CENTER_FILTER_WAVELENGTH"></Item>
<Item name="DATA_SET_ID">"LRO-L-LOLA-4-GDR-V1.0"</Item>
<Item name="FILTER_NAME"></Item>
<Item name="INSTRUMENT_ID">"LOLA"</Item>
<Item name="INSTRUMENT_NAME">"LUNAR ORBITER LASER ALTIMETER"</Item>
<Item name="MISSION_NAME"></Item>
<Item name="NOTE"></Item>
<Item name="PRODUCER_INSTITUTION_NAME">"GODDARD SPACE FLIGHT CENTER"</Item>
<Item name="PRODUCT_CREATION_TIME">2017-09-15</Item>
<Item name="START_TIME">2009-07-13T17:33:17</Item>
<Item name="STOP_TIME">2016-11-29T05:48:19</Item>
<Item name="OFFSET" sample="0" role="offset">1737400</Item>
<Item name="SCALE" sample="0" role="scale">0.5</Item>
</GDALMetadata>