Анализ файла манифеста Android для поиска тега uses-permission с использованием python

Я анализирую теги использования-разрешения в файле xml (androidmanifest.xml), упомянутом в приложении для Android

Я попытался реализовать цикл for, чтобы сделать его итеративным, но я потерпел неудачу, и я здесь

Python:

from xml.dom.minidom import parseString file = open('/root/Desktop/AndroidManifest.xml','r') data = file.read() file.close() dom = parseString(data) xmlTag = dom.getElementsByTagName('uses-permission')[0].toxml() print xmlTag 

Вывод:

  <uses-permission android:name="android.permission.INTERNET"> </uses-permission> 

Для ошибки цикла:

 for uses-permission in xmlTag: #print child.tag, child.attrib print xmlTag.tag xmlTag = dom.getElementsByTagName('uses-permission')[1].toxml() xmlTag= dom._get_childNodes #print xmlTag 

Чтобы найти все теги разрешений, попробуйте выполнить итерацию по узлам, которые dom.getElementsByTagName('uses-permission') возвращает вместо доступа только к узлу с индексом 0 :

 from xml.dom.minidom import parseString data = '' with open('/root/Desktop/AndroidManifest.xml','r') as f: data = f.read() dom = parseString(data) nodes = dom.getElementsByTagName('uses-permission') # Iterate over all the uses-permission nodes for node in nodes: print node.toxml() 

Или если вы хотите только разрешение, а не xml, вы можете заменить node.toxml() на node.getAttribute('android:name') .

Intereting Posts
Как отправить местоположение GPS (Широта, Долгота) в строке запроса? Как избежать CollapsingToolbarLayout, не будучи разбитым или «неустойчивым» при прокрутке? Скрыть приложение для Android в режиме длительного нажатия-HOME-button-menu Android Calendar: результат onActivityResult всегда равен 0 Ошибка ориентации переключения: Ошибка фрагментации – Дублирующий идентификатор, тег или родительский идентификатор 0x0 Котлин: безопасные лямбды (нет утечки памяти)? Загрузить файл на Android Не удалось подключиться на сервере xmpp в android Android Studio – ProGuard IOException Duplicate Zip Entry Android: элементы в списках не становятся оранжевыми при нажатии? Начальный сервер команды AndroidStudio Регистр GCM блокирует AsyncTask до тех пор, пока не произойдет тайм-аут Отправить переменную между классами через Intent Почему часто требуется перезапустить Android Debug Bridge (adb)? ListAdapter – получить следующую строку, которая вот-вот появится на экране? (Для предварительной загрузки битмапа)