Какую библиотеку Ruby XML Вы рекомендовали бы для XML-файла 2.4 МБ?

Я пишу вспомогательный класс для sharedpreferences:

import android.content.Context;
import android.content.SharedPreferences;

/**
 * Created by mete_ on 23.12.2016.
 */
public class HelperSharedPref {

Context mContext;

public HelperSharedPref(Context mContext) {
    this.mContext = mContext;
}

/**
 *
 * @param key Constant RC
 * @param value Only String, Integer, Long, Float, Boolean types
 */
public void saveToSharedPref(String key, Object value) throws Exception {
    SharedPreferences.Editor editor = mContext.getSharedPreferences(key, Context.MODE_PRIVATE).edit();
    if (value instanceof String) {
        editor.putString(key, (String) value);
    } else if (value instanceof Integer) {
        editor.putInt(key, (Integer) value);
    } else if (value instanceof Long) {
        editor.putLong(key, (Long) value);
    } else if (value instanceof Float) {
        editor.putFloat(key, (Float) value);
    } else if (value instanceof Boolean) {
        editor.putBoolean(key, (Boolean) value);
    } else {
        throw new Exception("Unacceptable object type");
    }

    editor.commit();
}

/**
 * Return String
 * @param key
 * @return null default is null
 */
public String loadStringFromSharedPref(String key) throws Exception {
    SharedPreferences prefs = mContext.getSharedPreferences(key, Context.MODE_PRIVATE);
    String restoredText = prefs.getString(key, null);

    return restoredText;
}

/**
 * Return int
 * @param key
 * @return null default is -1
 */
public Integer loadIntegerFromSharedPref(String key) throws Exception {
    SharedPreferences prefs = mContext.getSharedPreferences(key, Context.MODE_PRIVATE);
    Integer restoredText = prefs.getInt(key, -1);

    return restoredText;
}

/**
 * Return float
 * @param key
 * @return null default is -1
 */
public Float loadFloatFromSharedPref(String key) throws Exception {
    SharedPreferences prefs = mContext.getSharedPreferences(key, Context.MODE_PRIVATE);
    Float restoredText = prefs.getFloat(key, -1);

    return restoredText;
}

/**
 * Return long
 * @param key
 * @return null default is -1
 */
public Long loadLongFromSharedPref(String key) throws Exception {
    SharedPreferences prefs = mContext.getSharedPreferences(key, Context.MODE_PRIVATE);
    Long restoredText = prefs.getLong(key, -1);

    return restoredText;
}

/**
 * Return boolean
 * @param key
 * @return null default is false
 */
public Boolean loadBooleanFromSharedPref(String key) throws Exception {
    SharedPreferences prefs = mContext.getSharedPreferences(key, Context.MODE_PRIVATE);
    Boolean restoredText = prefs.getBoolean(key, false);

    return restoredText;
}

}
17
задан Mike Woodhouse 20 February 2009 в 03:41
поделиться

2 ответа

Hpricot является, вероятно, лучшим инструментом для Вас - это просто в использовании и должно обработать файл на 2 мг без проблемы.

Speedwise libxml должен быть лучшим. Я использовал привязку libxml2 для Python несколько месяцев назад (в тот момент rb-libxml, было устаревшим). Интерфейс Streaming работал лучшее на меня (LibXML:: XML:: Читатель в рубиновом драгоценном камне). Это позволяет обрабатывать файл, в то время как это загружает, немного более удобно для пользователя, чем SAX и позволило мне загрузить данные из 30 МБ xml файл от Интернета до базы данных MySQL немного больше чем за минуту.

3
ответ дан 30 November 2019 в 14:44
поделиться

Nokogiri обертывает libxml2 и libxslt чистым Rubyish API, который поддерживает пространства имен, запросы XPath и CSS3. Тоже быстро. http://nokogiri.org/

4
ответ дан 30 November 2019 в 14:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: