Разбор комментариев в XML в Android - PullRequest
0 голосов
/ 01 марта 2012

В личных целях я хотел бы проанализировать комментарии в файле манифеста Android. В этих комментариях могут быть теги с атрибутами и значениями, которые я хочу извлечь. Это похоже на тег в HTML-файлах, который обычно комментируется, потому что некоторые браузеры не поддерживают этот тег. Поэтому я хочу реализовать подобные вещи в манифесте Android.

Я знаю, что в манифесте Android файл анализируется с помощью SAXParser. Более того, я думаю, что мне следует использовать LexicalHandler для этих целей, но я никогда раньше не сталкивался с этой функциональностью и хочу знать, как это сделать. Фрагменты кода и любая помощь будут высоко оценены!

Ответы [ 3 ]

0 голосов
/ 07 марта 2012

Я не хочу быть этим парнем , но вы, вероятно, должны поддерживать свой собственный XML в / assets / и не перегружать файл manifest.xml.

0 голосов
/ 09 марта 2012

Я полностью уверен, что вы не можете проанализировать необработанный XML-манифест, потому что, как и все, что находится в папке res (кроме res/raw), манифест компилируется и сохраняется в двоичном формате, поэтому комментарии удален.

Может быть, вы можете поиграть с xmlns и перехватить манифест ... Но я сомневаюсь, что манифест интерпретируется менеджером пакетов, и я не думаю, что вы можете иметь к нему доступ.

Решение (из ваших отзывов):
Запрашиваемая функция невозможна, так как при компиляции удаляются все комментарии из файла AndroidManifest.

Вы можете проверить это следующим образом:

  1. Создайте простой проект приложения (Hello World) и добавьте комментарии в свой файл AndroidManifest.
  2. Скомпилируйте проект и экспортируйте файл .apk (подписанный или неподписанный).
  3. С помощью таких инструментов, как apktool или аналог, извлеките файл apk.
  4. Проверьте результат в AndroidManifest.xml - комментариев нет.

Вы должны попытаться найти другой путь.

0 голосов
/ 03 марта 2012

Я не думаю, что это возможно, поскольку AndroidManifest недоступен в качестве ресурса classpath.Единственный способ, о котором я могу подумать, - это на самом деле сделать копию AndroidManifest.xml в свои исходные файлы и собрать ее как скомпилированный объект, используя цель ant

Затем вы просто получаете к нему доступ, как обычный файл XMLиспользуя XML API.

...