python dom方法遍历某文件夹下所有xml
来源:互联网 发布:软件项目管理制度 编辑:程序博客网 时间:2024/06/05 20:26
最近刚开始学习Python,要实现这一样一个函数,遍历一个Android app代码中res\\value目录下的xml文件。因为其xml文件格式基本为下面这种,比较单一。
string.xml
<?xml version="1.0" encoding="utf-8"?><resources> <string name="app_name">ActivityLife</string> <string name="hello_world">Hello world!</string> <string name="action_settings">Settings</string></resources>
可以看到,其实在resources父节点下有三个string子节点。因刚开始学Python,所以我觉得用xml.dom方法比较容易懂一些(原谅我还是个小白)。
xml dom定义了xml元素的对象和属性,以及访问他们的方法。dom将xml文档作为一个树形结构来处理。具体介绍可以查看这个,点击打开链接。好了,回归正题,要解决上面的问题,具体思路是:
1.遍历文件夹,得到所有的xml文件。(使用了glob.glob())
2.对每个xml进行读取解析。得出子节点属性值和文本节点值。
下面是实现代码:
# -*- coding: UTF-8 -*-#遍历某个文件夹下所有xml文件import sys import glob import osimport xml.dom.minidom def traversalDir_XMLFile(path): #判断路径是否存在 if (os.path.exists(path)): #得到该文件夹路径下下的所有xml文件路径 f = glob.glob(path + '\\*.xml' ) for file in f : print file #打开xml文档 dom = xml.dom.minidom.parse(file) #得到文档元素对象 root = dom.documentElement #得到子节点列表,print childs childs = root.childNodes for child in childs: #筛选符合需求的child if(child.nodeType == 1): #得出子节点属性和文本节点值 print'key:', child.getAttribute('name') print'value:',child.firstChild.data traversalDir_XMLFile('E:\\work\\ActivityLife\\res\\values')path路径是我的一个value文件夹,里面有dimens.xml;string.xml;styles.xml;还有几个word文件和txt格式文件。输出结果为:
E:\work\ActivityLife\res\values\dimens.xmlkey: activity_horizontal_marginvalue: 16dpkey: activity_vertical_marginvalue: 16dpE:\work\ActivityLife\res\values\strings.xmlkey: app_namevalue: ActivityLifekey: hello_worldvalue: Hello world!key: action_settingsvalue: SettingsE:\work\ActivityLife\res\values\styles.xmlkey: AppBaseThemevalue: key: AppThemevalue:
代码中注释已经非常明了了。因为我的文件中还有其他的xml文件,虽然其父节点都是在resources下,但是其子节点却不相同。有string的,有dimen等。但其格式却都是相同的。而我在print value时,用child.nodeValue却得到none,额现在还不是很清楚这个原因。我想可能是下面这个:
文本总是存储在文本节点中
在 DOM 处理中一个普遍的错误是,认为元素节点包含文本。
不过,元素节点的文本是存储在文本节点中的。
在这个例子中:<year>2005</year>,元素节点 <year>,拥有一个值为 "2005" 的文本节点。
"2005" 不是 <year> 元素的值!
具体原因希望读者能告诉我哈!!☆⌒(*^-゜)v
下面给出一些参考文档:
Python golb方法:http://www.cnblogs.com/hongten/p/hongten_python_glob.html
xml解析:http://www.cnblogs.com/fnng/p/3581433.html
http://www.runoob.com/python/python-xml.html
0 0
- python dom方法遍历某文件夹下所有xml
- Python-遍历目标文件夹下所有文件
- python遍历文件夹下的所有文件
- python 遍历一个文件夹下所有文件名称
- python 遍历指定文件夹下的所有文件内容
- 如何用python遍历文件夹下的所有excel文件
- 遍历文件夹下的所有文件(Python&C++)
- Python遍历文件夹下所有文件及目录
- php遍历某文件夹下的所有文件和文件夹
- 使用glob方法遍历文件夹下所有文件
- PHP使用glob方法遍历文件夹下所有文件
- 遍历文件夹下所有文件
- 遍历文件夹下所有文件
- 遍历文件夹下所有文件
- 遍历文件夹下所有文件
- 【Python】遍历某目录下的所有文件夹与文件的路径、输出中文乱码问题
- Python:遍历输出某路径下的所有文件和文件夹
- 遍历文件夹下所有文件和文件夹
- C语句和反汇编代码对照表
- ML数学知识琐碎
- 修改linux系统root密码
- 内存分配的原理__进程分配内存有两种方式,分别由两个系统调用完成:brk和mmap(不考虑共享内存)。
- php 基础之GD库
- python dom方法遍历某文件夹下所有xml
- Stanford NLP 安装与初步使用
- android之Toolbar取消子控件左边留白
- [李景山php]每天laravel-20161103|CompilerEngine.php-2
- oracle 数据库分区
- mac的svn之cornerstone简易使用
- 《React-Native系列》26、 ReactNative实现图片上传功能
- MSSQL之二十一 存储过程案例
- Android Menu