python dom解析xml 总结
来源:互联网 发布:惊惶庞麦郎 知乎 编辑:程序博客网 时间:2024/06/01 12:13
最近开发了一个程序,需要解析xml,因此写了个小demo学习研究
一、xml.dom 解析XML的API描述
minidom.parse(filename)
加载读取XML文件
doc.documentElement
获取XML文档对象
node.getAttribute(AttributeName)
获取XML节点属性值
node.getElementsByTagName(TagName)
获取XML节点对象集合
node.childNodes #返回子节点列表。
node.childNodes[index].nodeValue
获取XML节点值
node.firstChild
#访问第一个节点。等价于pagexml.childNodes[0]
doc = minidom.parse(filename)
doc.toxml('UTF-8')
返回Node节点的xml表示的文本
Node.attributes["id"]
a.name #就是上面的 "id"
a.value #属性的值
访问元素属性
二、直接上代码
2.1 如下是安卓手机源码中的一段xml文件,String.xml
<?xml version="1.0" encoding="utf-8"?><resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <!-- Settings item for boolean option to enable/disable MMS delivery reports --> <string name="pref_title_mms_delivery_reports">Request delivery report</string> <!-- Settings item for boolean option to enable/disable MMS group messages --> <string name="pref_title_mms_group_mms">Group messaging</string> <!-- Settings item for boolean option to enable/disable MMS read reports --> <string name="pref_title_mms_read_reports">Request read report</string> <!-- Settings item for boolean option to enable/disable SMS delivery reports --> <string name="pref_title_sms_delivery_reports">Request delivery report</string> <!-- Settings item for boolean option to enable/disable auto-deletion of messages --> <string name="pref_title_auto_delete">Delete old messages</string> <!-- Settings item for integer option to set SMS delete limit --> </resources>
#!/usr/bin/pythonfrom xml.dom import minidomdef get_attrvalue(node, attrname): return node.getAttribute(attrname) if node else ''def get_nodevalue(node, index = 0): return node.childNodes[index].nodeValue if node else ''def get_xmlnode(node,name): return node.getElementsByTagName(name) if node else []def xml_to_string(filename='String.xml'): doc = minidom.parse(filename) return doc.toxml('UTF-8')def get_xml_data(filename='/home/android/sprd4.4/demo1/src/com/demo1/String.xml'): doc = minidom.parse(filename) root = doc.documentElement string_nodes = get_xmlnode(root,'string') for node in string_nodes :print node nodeName = node.childNodes[0].data mms_name = get_attrvalue(node,'name') print "mms_name ===== %s===== nodeName======%s===nodeString=== %s" % (mms_name,node.nodeName,nodeName)if __name__ == "__main__": get_xml_data()
后续更新其它的解析方法
1 0
- python dom解析xml 总结
- python 解析XML xml.dom
- python 解析XML xml.dom
- python 解析XML xml.dom
- python 解析XML xml.dom
- python 解析XML xml.dom
- python dom 解析 webservice xml
- Python XML解析之DOM
- DOM对XML解析总结
- Python:Dom解析XML文件(读XML)
- Python:Dom解析XML文件(读XML)
- python xml.dom模块解析xml
- XML-02总结---DOM方式解析XML
- dom解析xml文档过程总结
- iOS GDataXMLNode 解析XML DOM方式 总结
- XML DOM---解析xml dom
- 【XML】DOM解析XML
- python中用xml.dom.minidom来解析xml文件
- 第十五周项目:范型程序
- 浅谈 PopupWindow 在 Android 开发中的使用
- iOS面试题(三)
- Android开发中Handler的案例分析
- Mongodb与Redis应用指标对比
- python dom解析xml 总结
- MySQL5.7重置ROOT密码测试可行的办法
- iOS面试题(四)
- 微信端开发 如何阻止父区域链接的执行
- 关于docker几个需要注意的事项
- MySQL使用详解--根据个人学习总结
- 通过输入的字符串日期转换成星期几
- iOS9 字符串转utf-8方法
- Ubuntu 删除dash 中无效的图标