我们来看一下root.attrib的输出:
在versionName和versionCode前面的是什么? 没错, 就是我们上面配置的SPACE,所以如果我们要想正确的获取到值,别忘了加上.
通过上面我们可以看到, versionName和versionCode都是属于manifest根目录的成员
因为权限属性(uses-permission)在manifest一级子属性
因为activity不是manifest的一级子属性, 而是application的子属性
meta和service因为跟acitity是同级的, 所以处理方法一样, 我就不赘述了
其实如果你搞明白了,manifest的本质是xml, 然后知道如何用python操作xml, 那么这个问题就变得很简单
https://docs.python.org/2/library/xml.etree.elementtree.html#element-objects
类似于:#!/usr/bin/evn python
#coding:utf-8
try:
import xml.etree.cElementTree as ET
except ImportError:
import xml.etree.ElementTree as ET
import sys
try:
tree = ET.parse("country.xml") #打开xml文档
#root = ET.fromstring(country_string) #从字符串传递xml
root = tree.getroot() #获得root节点
except Exception, e:
print "Error:cannot parse file:country.xml."
sys.exit(1)
print root.tag, "---", root.attrib
for child in root:
print child.tag, "---", child.attrib
print "*"*10
print root[0][1].text #通过下标访问
print root[0].tag, root[0].text
print "*"*10
for country in root.findall('country'): #找到root节点下的所有country节点
rank = country.find('rank').text #子节点下节点rank的值
name = country.get('name') #子节点下属性name的值
print name, rank
#修改xml文件
for country in root.findall('country'):
rank = int(country.find('rank').text)
if rank > 50:
root.remove(country)
tree.write('output.xml')
给你推荐一篇文章看看吧:
http://python.jobbole.com/82775/
1. 使用ElementTree模块,它是Python标准库中提供的一个XML解析模块,它使用简单,非常容易使用,可以降低内存占用。2. 使用lxml模块,它是一个高性能的XML和HTML解析器,可以有效的降低内存占用。
3. 使用iterparse()函数,它可以遍历XML文档,可以降低内存占用。
4. 使用xml.sax模块,它是一个基于事件驱动的XML解析器,可以有效的降低内存占用。