python解析xml配置文件
2017-06-04 00:00
423 查看
一、创建xml样例文件,以ascii格式存放
二、python编码遍历节点
三、输出结果
<?xml version="1.0" encoding="utf-8"?> <Files> <C2GCarrier fileName="C2G_CARRIER_YYYYMMDD_NNNN.DAT" describe="集团下发的C2G文件" tagClass="Application" tagFormat="Simple" tagId="1"> <HeadRecord tagType="Sequence" tagClass="Application" tagFormat="Simple" tagId="33"> <RecordType tagType="Sequence" tagClass="Application" tagFormat="Simple" tagId="80">记录类型</RecordType> <ProvCode tagType="Sequence" tagClass="Application" tagFormat="Simple" tagId="81">省代码</ProvCode> <FileGenDate tagType="Sequence" tagClass="Application" tagFormat="Simple" tagId="83">文件生成时间</FileGenDate> </HeadRecord> </C2GCarrier> </Files>
二、python编码遍历节点
#!/usr/bin/python # -*- coding:utf-8 -*- ''' Created on 2016年2月24日 ''' from xml.etree import ElementTree import codecs def fromFile1(fileName): xmlString = open(fileName).read() root = ElementTree.fromstring(xmlString) return root def fromFile2(fileName): obj = codecs.open(fileName, 'rb', 'gbk') xmlString = obj.read().encode('utf-8') obj.close() root = ElementTree.fromstring(xmlString) return root def loopXml(nodes): for node in nodes.iter(): outstr = node.tag + '=' if node.text != None: outstr += node.text outstr += '{' for attr in node.attrib: outstr += attr + ':' + node.attrib[attr] + ',' outstr += '}' print(outstr) if __name__ == '__main__': loopXml(fromFile1('E:/work/asn_format.xml')) loopXml(fromFile2('E:/work/asn_format.xml')) pass
三、输出结果
Files= {} C2GCarrier= {tagId:1,tagClass:Application,tagFormat:Simple,fileName:C2G_CARRIER_YYYYMMDD_NNNN.DAT,describe:集团下发的C2G文件,} HeadRecord= {tagId:33,tagClass:Application,tagType:Sequence,tagFormat:Simple,} RecordType=记录类型{tagId:80,tagClass:Application,tagType:Sequence,tagFormat:Simple,} ProvCode=省代码{tagId:81,tagClass:Application,tagType:Sequence,tagFormat:Simple,} FileGenDate=文件生成时间{tagId:83,tagClass:Application,tagType:Sequence,tagFormat:Simple,} Files= {} C2GCarrier= {tagId:1,tagClass:Application,tagFormat:Simple,fileName:C2G_CARRIER_YYYYMMDD_NNNN.DAT,describe:集团下发的C2G文件,} HeadRecord= {tagId:33,tagClass:Application,tagType:Sequence,tagFormat:Simple,} RecordType=记录类型{tagId:80,tagClass:Application,tagType:Sequence,tagFormat:Simple,} ProvCode=省代码{tagId:81,tagClass:Application,tagType:Sequence,tagFormat:Simple,} FileGenDate=文件生成时间{tagId:83,tagClass:Application,tagType:Sequence,tagFormat:Simple,}
相关文章推荐
- python解析xml配置文件
- 使用digester 解析xml配置文件
- Hibernate.cfg.xml配置文件解析
- ibatis配置文件解析之XmlParserState
- hadoop core 默认配置文件(core-default.xml)参数解析(三)
- [zz]python模块之ConfigParser: 用python解析配置文件
- JAVA高手解析XML配置文件的读取操作
- 读取配置文件[方式三]之xml解析配置文件法
- magento的xml配置文件的简单解析-frontend
- Hibernate.cfg.xml配置文件模板及解析
- hadoop core 默认配置文件(core-default.xml)参数解析(二)
- SQL文的管理和解析(一)利用Spring的Resource管理SQL的XML配置文件
- [转载]JAVA高手解析XML配置文件的读取操作
- [Java学习]使用digester 解析xml配置文件
- Java 用 JDom 解析 XML 配置文件
- python模块之ConfigParser: 用python解析配置文件[zt]
- Python解析XML文件
- ibatis连接数据库的配置文件SqlMapConfig.xml---解析
- JAVA解析XML配置文件的读取操作
- 使用Digester解析XML配置文件