当前位置: 首页 > news >正文

python读取xml配置_python解析xml配置文件

一、创建xml样例文件,以ascii格式存放

记录类型

省代码

文件生成时间

二、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,}

相关文章:

  • java 接口数据类型_Java中的基本数据类型与引用数据类型
  • java 红包接口开发_java调用微信现金红包接口的心得与体会总结
  • java项目中学到了什么_我们能从Java的HelloWorld中学到什么?
  • js java md5加密_MD5加密 (java、js)
  • junit mysql_使用Junit单元测试及操作MySQL数据库时出现错误及解决方法
  • java最简单的算术程序_java – ANTLR4访问者模式简单的算术示例
  • java版我的世界有溺尸_我的世界溺尸怎么找
  • mysql制作html静态网页6_PHP生成HTML静态页面实例代码
  • Thread核心java语句_【经典干货】《Java 多线程编程核心技术》学习笔记及总结(中)...
  • java核心技术卷2 第9版 pdf,Java核心技术 卷II 高级特性(原书第9版) PDF
  • php 下载文件 进度条显示,Curl下载文件显示实时进度条(附代码)
  • php7.2 fpm,centos 7.2 添加php7 的 php-fpm 开机启动
  • 怎么把java源代码封装,如何把JAVA程序封装成EXE文件
  • n后问题Java回溯法,n皇后问题回溯法---java图形界面实现回溯过程
  • as3.0和php,AS3.0上安装Apache2.0.50+MySQL+PHP5+Resin+SSL+GD以及日志分析
  • 实现windows 窗体的自己画,网上摘抄的,学习了
  • 【5+】跨webview多页面 触发事件(二)
  • DOM的那些事
  • JavaScript 一些 DOM 的知识点
  • JS基础之数据类型、对象、原型、原型链、继承
  • js算法-归并排序(merge_sort)
  • Vue UI框架库开发介绍
  • 编写符合Python风格的对象
  • 记一次和乔布斯合作最难忘的经历
  • 名企6年Java程序员的工作总结,写给在迷茫中的你!
  • 爬虫进阶 -- 神级程序员:让你的爬虫就像人类的用户行为!
  • 如何使用Mybatis第三方插件--PageHelper实现分页操作
  • 收藏好这篇,别再只说“数据劫持”了
  • 进程与线程(三)——进程/线程间通信
  • 专访Pony.ai 楼天城:自动驾驶已经走过了“从0到1”,“规模”是行业的分水岭| 自动驾驶这十年 ...
  • ​如何防止网络攻击?
  • %@ page import=%的用法
  • (14)学习笔记:动手深度学习(Pytorch神经网络基础)
  • (6)添加vue-cookie
  • (Redis使用系列) Springboot 使用Redis+Session实现Session共享 ,简单的单点登录 五
  • (二)Eureka服务搭建,服务注册,服务发现
  • (二)构建dubbo分布式平台-平台功能导图
  • (附源码)spring boot智能服药提醒app 毕业设计 102151
  • (附源码)springboot 校园学生兼职系统 毕业设计 742122
  • (剑指Offer)面试题41:和为s的连续正数序列
  • (理论篇)httpmoudle和httphandler一览
  • (六)Hibernate的二级缓存
  • (使用vite搭建vue3项目(vite + vue3 + vue router + pinia + element plus))
  • (新)网络工程师考点串讲与真题详解
  • (已解决)报错:Could not load the Qt platform plugin “xcb“
  • .Net Web项目创建比较不错的参考文章
  • .NET 设计模式初探
  • .net网站发布-允许更新此预编译站点
  • .Net下的签名与混淆
  • :“Failed to access IIS metabase”解决方法
  • @Autowired标签与 @Resource标签 的区别
  • @Autowired和@Resource的区别
  • [.net 面向对象程序设计进阶] (19) 异步(Asynchronous) 使用异步创建快速响应和可伸缩性的应用程序...
  • [Android Studio 权威教程]断点调试和高级调试
  • [APIO2015]巴厘岛的雕塑