Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/16: Рейтинг темы: голосов - 16, средняя оценка - 4.88
 Аватар для Faustlogger
43 / 35 / 8
Регистрация: 14.09.2011
Сообщений: 158
Записей в блоге: 1

Работа с файлами xml на Android. DOM парсер

30.08.2012, 09:39. Показов 3430. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Сейчас пишу приложение для Android и мне необходимо выполнить чтение данных из xml. Сначала я написал класс для работы с DOM-парсером. В классе создал все необходимые для меня методы для работы с файлом. Написал пользовательский интерфейс, для работы. Написал класс адаптера (паттерн адаптер). Одно из необходимых условий. Ибо в случае использования данных в JSON переход должен быть безболезненным для приложения. Проверил на обычном java-приложении, все отлично работает.

После того как начал все это "натягивать" на Android приложение, начались пляски с бубном проблемы. Оказывается просто взять и создать файл нельзя.
Java
1
File xmlFile = new File("res\\xml\\data.xml");
Загуглив, узнал, что необходимо использовать InputStream. Но если мне его использовать, прийдется все переделывать. Желания мало. Возник вопрос, как мне из InputStream получить File? Кто-нибудь уже с этим сталкивался?

P.S. другие парсеры не предлагать, сам знаю что SAX или Pull были бы проще. Но мне захотелось именно DOM использовать.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.08.2012, 09:39
Ответы с готовыми решениями:

Dom парсер и xml-схема
Здравстуйте, объясните если докумен валидации xsd или dtd находиться на удаленном хосте в записи типа: ...

Работа с xml файлами
Доброй ночи всем. Есть xml типа ...

Парсер DOM
Парсер DOM: import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import...

4
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
30.08.2012, 11:55
Цитата Сообщение от Faustlogger Посмотреть сообщение
как мне из InputStream получить File? Кто-нибудь уже с этим сталкивался?
никак это разные уровни работы абстракции с данными, инпутстрим кроме потока ни про что не знает, File это просто идентификатор файла на файловой системе и операции с ним. на базе файла можно создать инпут стрим, но чтобы там была инфа о файле придётся унаследоваться от InputStream и добавить в него проперти который будет тащить файл дескриптор в себе
примерно так
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
 
public class ISwithFile extends FileInputStream {
    private File file;
 
 
    public File getFile() {
        return file;
    }
 
 
    public ISwithFile(File file) throws FileNotFoundException {
        super(file);
        this.file = file;
    }
 
}
1
 Аватар для Faustlogger
43 / 35 / 8
Регистрация: 14.09.2011
Сообщений: 158
Записей в блоге: 1
30.08.2012, 12:54  [ТС]
mutagen, спасибо. Домой приду, обязательно попробую
0
 Аватар для Faustlogger
43 / 35 / 8
Регистрация: 14.09.2011
Сообщений: 158
Записей в блоге: 1
07.09.2012, 12:50  [ТС]
Возник новый вопрос. А как в Android внести изменения в xml file? К примеру, в моем случае я его расположил в директории "res\raw\shop_items". Для чтения данных из него использовал
Java
1
InputStream is = getResources().openRawResource(R.raw.shop_items);
Вот теперь когда потребовалось вносить изменения в документ, вошел в ступор
0
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
07.09.2012, 18:29
Почитайте про маршалинг и просто переписывайте поверх старого при помощи маршалинга изменённого DOM объекта
http://docs.oracle.com/javase/... aller.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.09.2012, 18:29
Помогаю со студенческими работами здесь

Посоветуйте, как тестить парсер DOM, SAX
Есть XML, я её распарсил несколькими способами. Далее необходимо написать к парсерам модульные тесты. пример моего парсера: public class...

Работа с XML-файлами
Суть задания: пользователь может редактировать табличные данные, сохранить и загружать в XML. У меня же выбивает кучу исключений, открывает...

работа с DOM XML
Есть xml документ и нужно используя методы DOM XML, сформировать HTML страницу, содержащую таблицу из трех...

Работа с DOM XML
Здравствуйте. Помогите, пожалуйста, разобраться в чем проблема. Есть xml документ и нужно, используя методы DOM XML, сформировать HTML...

Работа с файлами android которые находятся не в папке проекта Android Studio
Всех приветствую, начал разработку приложения под Android и не могу разобраться как работать с файлами которые находятся не в папке...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru