Notice
Recent Posts
Recent Comments
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

INSPECT

[XML parsing] AndroidManifest.xml 파싱 본문

Python

[XML parsing] AndroidManifest.xml 파싱

INSPECT 2016. 1. 23. 11:38

[XML parsing] AndroidManifest.xml 파싱


AndroidManifest.xml 파일을 파싱하기 위해 찾아본 결과 python에 xml파싱 라이브러리가 존재했다. 그 중 ElementTree라는 라이브러리를 가장 많이 쓰는 것 같았다.

xml파일의 내용은 위와 같고 나는 여기서 permission, receiver, service별로 파싱하고 싶었다.

note는 문서의 최상단 태그를 가리키게 된다.

태그를 탐색하는 함수는 기본적으로 find와 findall이 있는데 note.find라고 쓴다면 root안에서만 태그를 탐색하고 그 하위 자식태그들은 탐색하지 못한다.

iter은 반복적으로 모든 자식의 태그까지 탐색한다. 그리하여 ()안의 태그를 찾는다. 나는 복잡하게 하기 싫어서 iter로 모두 찾아보았다.

attrib는 속성을 가리키는데 namespace와 요소값이 함께 맵 형태로 저장되어있는 것을 확인 할 수 있었다.

namespace가 포함된 문서를 따로 다루는 방법도 있지만 위의 결과를 보니 더 쉽게 할 수 있을 것 같았다.

맵 형태로 namespace가 key로 저장되어있고 내가 원하는 값들이 value에 저장되어있으니 단순히 values()를 써서 뽑아왔다.

결과는 위처럼 리스트형태로 나온다. 따라서 [0]을 써줘서 조금더 깔끔해 보이게 완성했다.


Comments