2010-03-07 2 views
9

Хотя я понимаю, что сами ресурсы определены в файлах XML, если у меня есть файл XML моего собственного типа, который я хочу использовать, следует ли хранить их в «res/xml»?Каков наилучший способ хранения и доступа к XML в Android?

Есть ли лучший способ сделать это, например, использовать активы, а затем загрузить их в виде двоичных файлов, которые будут разбираться другой библиотекой XML?

ответ

9

Я хотел бы добавить XML-ресурс в папку res с определенным типом ресурса. Это соглашение, к которому я приспособился, имея все мои файлы в одном каталоге для организации.

Если добавить файл XML внутри res/xml она может быть доступна в любое время во время выполнения с помощью Resources.getXML()

+0

Вы знаете, какие API я в конечном итоге, используя при загрузке XML через ресурс? –

+0

Я немного смущен, что вы подразумеваете под этим API, можете ли вы уточнить немного больше? –

+0

Какой тип парсера используется? Есть ли ссылка на Android API? Более просто, какой тип объекта возвращает Resource.getXML()? –

2

Если вы предпочитаете легкость кодирования над молниеносной скоростью, то я хотел бы использовать вместо Simple XML library. Это проще для программирования. Я написал сообщение в блоге, которое вы можете просмотреть, что объясняет ваш how to include it in a project.

0

Во-первых, зная, как правильно доступ к файлам в Android:

Вам может понадобиться доступ исходные файлы и каталоги. Если вы это сделаете, то сохранение ваших файлов в res/ не будет работать для вас, потому что only way to read a resource from res/ is with the resource ID. Вместо этого вы можете сохранить свои ресурсы в каталоге assets /.

Файлы, сохраненные в каталоге assets/assets, не имеют идентификатора ресурса, поэтому вы не можете ссылаться на них через класс R или из ресурсов XML. Вместо этого вы можете запрашивать файлы в каталоге assets/как обычная файловая система и читать исходные данные с помощью AssetManager.

Однако, если вам требуется только чтение необработанных данных (например, видео или аудиофайла), сохраните файл в каталоге res/raw/и прочитайте поток байтов с помощью openRawResource().

Доступ к XML-файлов

http://developer.android.com/guide/topics/resources/accessing-resources.html#ResourcesFromXml

res/xml/ 

Arbitrary XML files that can be read at runtime by calling Resources.getXML() 

Source

Resources res = activity.getResources(); 
XmlResourceParser xrp = res.getXml(R.xml.the_file_name_aka_resource_ID); 
Смежные вопросы