Как разобрать несколько файлов XML в Android - PullRequest
0 голосов
/ 12 января 2012

У меня есть 8 файлов XML, и я могу проанализировать один файл с помощью sax, но есть ли способ для анализа всех файлов.Все 8 файлов имеют похожие элементы, и мне нужно получить тему каждого файла в виде списка, например, список, содержащий 8 тем.как это сделать, как динамически вызывать каждый файл из папки ресурсов.Помогите мне с некоторыми идеями, я застрял с этим друзьями.Заранее спасибо

Ответы [ 3 ]

1 голос
/ 12 января 2012

Чтобы получить xml из папки Assets, используйте

AssetManager mgr = getAssets(); 
Inputstream ins = mgr.open("abc.xml");

расшифруйте его в XML-контент, затем проанализируйте и сохраните ваше значение в arraylist Сделайте это для 8 файлов и сохраните значение в том же массиве, наконец, отобразите список в виде списка.

1 голос
/ 12 января 2012

создать экземпляр Collection, который содержит агрегированный результат анализа создать метод для обработки одного XML-файла, который возвращает коллекцию создайте метод, который зацикливается на файлы, вызывая функцию и добавляя результат в коллекцию

/**
     * this will process file by file
     * 
     * @param xmlFilePath
     * @return
     */
    private Collection<String> parseSingleFile(String xmlFilePath) {
        // process xml file and extract the result into a collection
        return new ArrayList<String>();
    }

    /**
     * this will take all of your files
     * 
     * @param files
     * @return
     */
    public Collection<String> processBulkFiles(String[] files) {
        Collection<String> parsedresults = new ArrayList<String>();
        for (String xmlFilePath : files) {
            parsedresults.addAll(parseSingleFile(xmlFilePath));
        }
        return parsedresults;
    }
0 голосов
/ 12 января 2012

Не знаю, правильно ли я понимаю, но вы можете передать имя файла XML, по которому вы щелкнули в представлении списка, следующему действию и использовать его для выполнения операций XML.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...