python xml包使用记录
<?xml version="1.0" encoding="utf-8" ?>
<request>
<functionID>subPackageInfo</functionID>
<time>2014-02-10 15:10:50</time>
<packageList>
<packageInfo>
<orderId>22088315090</orderId>
<expressName>EMS</expressName>
<expressTel>01</expressTel>
<expressNo>0001</expressNo>
<productId>1001173023</productId>
<allotQuatity>5</allotQuatity>
<outOfStockQuatity>0</outOfStockQuatity>
<promotionID></promotionID>
</packageInfo> <packageInfo>
<orderId>22088315090</orderId>
<expressName>EMS</expressName>
<expressTel>010-55675233</expressTel>
<expressNo>0001</expressNo>
<productId>1001173123</productId>
<allotQuatity>5</allotQuatity>
<outOfStockQuatity>0</outOfStockQuatity>
<promotionID>-1</promotionID>
</packageInfo> <packageInfo>
<orderId>22088315090</orderId>
<expressName>EMS</expressName>
<expressTel>010-55675233</expressTel>
<expressNo>0001</expressNo>
<productId>1001173223</productId>
<allotQuatity>0</allotQuatity>
<outOfStockQuatity>1</outOfStockQuatity>
<promotionID>-1</promotionID>
</packageInfo> </packageList>
</request>
首先把以上xml文件保存到本地
导入xml模块,使用dom.minidom导入xml文件
#coding:utf-8
from xml.dom import minidom
dom=minidom.parse('22088315090.xml')
>>> packs=dom.getElementsByTagName('packageInfo')
查找xml下面的所有packageInfo节点
>>> pack_childnotes=packs[0].childNodes
查找第一个packageInfo的所有子节点
>>> for i in pack_childnotes:print '###',i.toxml() ### ### <orderId>22088315090</orderId>
### ### <expressName>EMS</expressName>
### ### <expressTel>01</expressTel>
### ### <expressNo>0001</expressNo>
### ### <productId>1001173023</productId>
### ### <allotQuatity>5</allotQuatity>
### ### <outOfStockQuatity>0</outOfStockQuatity>
### ### <promotionID/>
###
以上打印出所有类型的xml信息,包括元素类型和文本类型
>>> for i in pack_childnotes:
if i.nodeType==i.TEXT_NODE:
pass
else:
print 'name',i.nodeName
tagname=i.nodeName
if i.childNodes:
print 'type',i.childNodes[0].data
value=i.childNodes[0].data
else:
value=''
orders_info[tagname]=value
print orders_info {u'orderId': u'', u'promotionID': '', u'outOfStockQuatity': u'', u'expressNo': u'', u'expressTel': u'', u'productId': u'', u'expressName': u'EMS', u'allotQuatity': u''}
把第一个packageInfo的子节点数据拿到保存在字典中
完整的代码如下:
#coding:utf-8
from xml.dom import minidom
dom=minidom.parse('22088315090.xml')
packs=dom.getElementsByTagName('packageInfo')
orders=[]
#pack_childnotes=packs[0].childNodes def control(pack):
pack_childnotes=pack.childNodes
orders_info={}
for i in pack_childnotes:
if i.nodeType==i.TEXT_NODE:
pass
else:
#print 'name',i.nodeName
tagname=i.nodeName
if i.childNodes:
#print 'type',i.childNodes[0].data
value=i.childNodes[0].data
else:
value=''
orders_info[tagname]=value
return orders_info for pack in packs:
#print pack orders.append(control(pack))
print orders
python xml包使用记录的更多相关文章
- python xml包 xml.etree.ElementTree使用记录
19.7.1 教程 这是一个简短的教程使用xml.etree.ElementTree(简称为et).目标是展示一些构建模块和模块的基本概念 9.7.1.1. XML tree and elements ...
- LFD,非官方的Windows二进制文件的Python扩展包
LFD,非官方的Windows二进制文件的Python扩展包 LFD,非官方版本.32和64位.Windows.二进制文件.科学开源.Python扩展包 克里斯托夫·戈尔克(by Christoph ...
- Python自定义包引入【新手必学】
前言本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者:sys_song python中的Module是比较重要的概念.常见的情 ...
- python库包大全(转)
python 库资源大全 转自: Python 资源大全中文版 环境管理 管理 Python 版本和环境的工具 p:非常简单的交互式 python 版本管理工具.官网 pyenv:简单的 Python ...
- 机器学习常用Python扩展包
在Ubuntu下安装Python模块通常有3种方法:1)使用apt-get:2)使用pip命令(推荐);3)easy_instal 可安装方法参考:[转]linux和windows下安装python集 ...
- python常用绘图软件包记录
在没有使用python之前,觉得matlab的绘图功能还算可以~但现在发现python的绘图包真的好强大,绘制出的图像非常专业漂亮,但具体使用还有待学习,这里记录学习过程中遇到的python绘图包,以 ...
- 关于python的包
参考文献:http://blog.sina.com.cn/s/blog_615c388d01017b5o.html 注:本文大多对上连接的整理,仅用于学习,望博主见谅.转载请附上上述链接. 为什么要包 ...
- Odoo XML中操作记录与函数
转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/10826037.html 一:XML文件中定义记录 XML中定义记录: 每个<record>元素有 ...
- # Python 3 & 爬虫一些记录
目录 Python 3 & 爬虫一些记录 交互模式和命令行模式 函数积累 语法积累 列表和元组 输入 交互模式下输入多行 爬虫 HTTP报文请求头User-Agent信息 解析库pyquery ...
随机推荐
- 《Code Complete》ch.8 防御式编程
WHAT? 主要思想:子程序不应因传入参数错误而被破坏 WHY? 保护程序免遭非法输入的破坏 HOW? 断言 assert denominator != 0 : "denominator s ...
- MFC学习 事件临界区
事件: #include <Windows.h> #include <iostream> DWORD WINAPI Func1Pro(LPVOID lpParameter); ...
- canvas-a10isPointPath2.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- EF调用存储过程遇到的问题
注意 实体类Statistics的字段名和存储过程返回集合的列名要相同才行
- js判断汉字字数
js判断汉字字数的东东 //**************************************************************** //* 名 称:DataLength // ...
- No.011 Container With Most Water
11. Container With Most Water Total Accepted: 86363 Total Submissions: 244589 Difficulty: Medium Giv ...
- 图解CISCO 3550忘记密码解决方法
图解CISCO3550忘记密码解决方法 Cisco网络设备密码忘记怎么初始出厂默认值?这时网友常常会提出的问题,怎么解决,有人说啦,去百度去谷歌一下不就行啦,然而这对初学者任是个挑战,虽然步骤只有简单 ...
- Python 编程规范-----转载
Python编程规范及性能优化 Ptyhon编程规范 编码 所有的 Python 脚本文件都应在文件头标上 # -*- coding:utf-8 -*- .设置编辑器,默认保存为 utf-8 格式. ...
- 新安装的ubuntu系统如何设置中文输入法的方案
本文是本人写的第一篇的linux博客,因为很菜,所以就把刚才自己安装中文输入法的过程给大家介绍一下,希望有所帮助. 1.首先,打开命令终端,两种方式,在Dash里面输入terminal然后enter, ...
- 安装Ecshop首页出现报错:Only variables should be passed by referen
出现下面这就话: Strict Standards: Only variables should be passed by reference in E:\Tools\ECShop_V2.7.3_UT ...