本文整理汇总了C++中XmlElement::getChild方法的典型用法代码示例。如果您正苦于以下问题:C++ XmlElement::getChild方法的具体用法?C++ XmlElement::getChild怎么用?C++ XmlElement::getChild使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类XmlElement
的用法示例。
在下文中一共展示了XmlElement::getChild方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: handleOsmData
void handleOsmData(XmlElement& osmRoot, XmapTree& xmapTree) {
for ( XmlElement item = osmRoot.getChild();
!item.isEmpty();
++item ) {
if (item == T::name()) {
T obj(item);
handle(obj,xmapTree);
}
}
}
示例2: main
int main(int argc, const char* argv[])
{
try {
Timer timer;
const char* symbolFileName = "./symbols.xmap";
const char* rulesFileName = "./rules.xml";
const char* inOsmFileName = "./in.osm";
const char* outXmapFileName = "./out.xmap";
if (argc > 1) {
for (int i = 1; i < argc; ++i) {
if (std::string(argv[i]) == "-i") {
inOsmFileName = argv[++i];
checkFileName(inOsmFileName,argv[0]);
}
else if (std::string(argv[i]) == "-o") {
outXmapFileName = argv[++i];
checkFileName(outXmapFileName,argv[0]);
}
else if (std::string(argv[i]) == "-s") {
symbolFileName = argv[++i];
checkFileName(symbolFileName,argv[0]);
}
else if (std::string(argv[i]) == "-r") {
rulesFileName = argv[++i];
checkFileName(rulesFileName,argv[0]);
}
else if (std::string(argv[i]) == "--help" ||
std::string(argv[i]) == "-h" ||
std::string(argv[i]) == "help") {
printUsage(argv[0]);
return 0;
}
else {
printUsage(argv[0]);
throw Error("Unknown option '" + std::string(argv[i]) + "'");
}
}
}
info("Using files:");
info("\t* input OSM file - " + std::string(inOsmFileName));
info("\t* output XMAP file - " + std::string(outXmapFileName));
info("\t* symbol set XMAP file - " + std::string(symbolFileName));
info("\t* rules file - " + std::string(rulesFileName));
XmlTree inXmapDoc(symbolFileName);
XmlElement inXmapRoot = inXmapDoc.getChild("map");
XmlTree inOsmDoc(inOsmFileName);
XmlElement inOsmRoot = inOsmDoc.getChild("osm");
const double min_supported_version = 0.5;
const double max_supported_version = 0.6;
double version = inOsmRoot.getAttribute<double>("version");
if (version < min_supported_version || version > max_supported_version) {
throw Error("OSM data version %.1f isn't supported" + std::to_string(version));
}
XmlElement bounds = inOsmRoot.getChild("bounds");
if (bounds.isEmpty()) {
throw Error("No bounds");
}
double x = bounds.getAttribute<double>("minlon") +
bounds.getAttribute<double>("maxlon");
x /= 2;
double y = bounds.getAttribute<double>("minlat") +
bounds.getAttribute<double>("maxlat");
y /= 2;
Coords geographic_ref_point(x,y);
Georeferencing georef(inXmapRoot, geographic_ref_point);
Main::transform = CoordsTransform(georef);
SymbolIdByCodeMap symbolIds(inXmapRoot);
Main::rules = Rules(rulesFileName,symbolIds);
osmToXmap(inOsmRoot,outXmapFileName,symbolFileName,georef);
info("\nExecution time: " + std::to_string(timer.getCurTime()) + " sec.");
}
/*
catch (const char * msg) {
std::cerr << "ERROR: " << msg << std::endl;
}
*/
catch (std::exception& error) {
std::cerr << "ERROR: " << error.what() << std::endl;
return 1;
}
}