Exemplo n.º 1
0
bool PListFile::LoadValue(PListValue& value, const XMLElement& valueElem)
{
    String valueType = valueElem.GetName();

    if (valueType == "string")
        value.SetString(valueElem.GetValue());
    else if (valueType == "real")
        value.SetFloat(ToFloat(valueElem.GetValue()));
    else if (valueType == "integer")
        value.SetInt(ToInt(valueElem.GetValue()));
    else if (valueType == "true")
        value.SetBool(true);
    else if (valueType == "false")
        value.SetBool(false);
    else if (valueType == "dict")
    {
        if (!LoadDict(value.ConvertToValueMap(), valueElem))
            return false;
    }
    else if (valueType == "array")
    {
        if (!LoadArray(value.ConvertToValueVector(), valueElem))
            return false;
    }
    else
    {
        URHO3D_LOGERROR("Supported value type");
        return false;
    }

    return true;
}
long ConfigParser::getValue(const char* sName, long lDefault)
{
   if (0 == pElement)
      return lDefault;
      
   XMLElement *pElem = pElement->FindChild(const_cast<char*>(sName));
   if (0 == pElem)
      return lDefault;
      
   return pElem->GetValue().ToLong();
}
const char *ConfigParser::getValue(const char* sName, const char *sDefault)
{
   if (0 == pElement)
      return sDefault;
      
   XMLElement *pElem = pElement->FindChild(const_cast<char*>(sName));
   if (0 == pElem)
      return sDefault;

   return pElem->GetValue().Data();
}
Exemplo n.º 4
0
bool PListFile::LoadDict(PListValueMap& dict, const XMLElement& dictElem)
{
    if (!dictElem)
        return false;

    XMLElement keyElem = dictElem.GetChild("key");
    XMLElement valueElem = keyElem.GetNext();
    while (keyElem && valueElem)
    {
        String key = keyElem.GetValue();
        valueElem = keyElem.GetNext();

        PListValue value;
        if (!LoadValue(value, valueElem))
            return false;

        dict[key] = value;

        keyElem = valueElem.GetNext("key");
        valueElem = keyElem.GetNext();
    }

    return true;
}