MapViewer/lib/osmparser/src/util.cpp

49 lines
1.1 KiB
C++
Raw Normal View History

2021-04-14 19:04:08 +00:00
#include <util.hpp>
#include <iostream>
#include <tinyxml2.h>
namespace xml = tinyxml2;
namespace osmp
{
#define FAILED(err) (err != xml::XML_SUCCESS)
std::string GetSafeAttributeString(const tinyxml2::XMLElement* elem, const std::string& name)
{
const char* buffer;
xml::XMLError result = elem->QueryStringAttribute(name.c_str(), &buffer);
if (FAILED(result))
return "";
std::string returnStr(buffer);
return returnStr;
}
2021-04-17 01:15:07 +00:00
double GetSafeAttributeFloat(const tinyxml2::XMLElement* elem, const std::string& name)
2021-04-14 19:04:08 +00:00
{
2021-04-17 01:15:07 +00:00
double returnVal = 0.0f;
2021-04-14 19:04:08 +00:00
2021-04-17 01:15:07 +00:00
xml::XMLError result = elem->QueryDoubleAttribute(name.c_str(), &returnVal);
2021-04-14 19:04:08 +00:00
return returnVal;
}
2021-04-17 01:15:07 +00:00
uint64_t GetSafeAttributeUint64(const tinyxml2::XMLElement* elem, const std::string& name)
2021-04-14 19:04:08 +00:00
{
2021-04-17 01:15:07 +00:00
uint64_t returnVal = 0;
2021-04-14 19:04:08 +00:00
2021-04-17 01:15:07 +00:00
xml::XMLError result = elem->QueryUnsigned64Attribute(name.c_str(), &returnVal);
2021-04-14 19:04:08 +00:00
return returnVal;
}
bool GetSafeAttributeBool(const tinyxml2::XMLElement* elem, const std::string& name)
{
bool returnVal = false;
xml::XMLError result = elem->QueryBoolAttribute(name.c_str(), &returnVal);
return returnVal;
}
}