Python3使用xml.dom.minidom和xml.etree模块儿解析xml文件封装函数的方法


Posted in Python onSeptember 23, 2019

总结了一下使用Python对xml文件的解析,用到的模块儿如下:

分别从xml字符串和xml文件转换为xml对象,然后解析xml内容,查询指定信息字段。

from xml.dom.minidom import parse, parseString
from xml.etree import ElementTree
import xml.dom.minidom
"""
Get XML String info 查询属性值
  response:xml string
  tag:xml tag
  element:xml attribute
"""
def get_xml_info(response, element):
  DOMTree = xml.dom.minidom.parseString(response)
  return DOMTree.documentElement.getAttribute(element)
"""
Get XML String info 查询制定名称的特定标签id
  xmlstring:xml str
  return config id
"""
def get_config_id_from_xml(xmlstring, scan):
  root = ElementTree.fromstring(xmlstring)
  configs = root.findall('config')
  for config in configs:
    config_name = config.find('name').text
    if config_name == scan:
      return config.attrib['id']
"""
Get XML String info 查询指定id
  xmlstring:xml str
  return report id
"""
def get_report_id_from_xml(xmlstring):
  root = ElementTree.fromstring(xmlstring)
  report_id = root.find('report_id').text
  return report_id
"""
Get XML String info
  xmlstring:xml str
  return progress 
"""
def get_progress_from_xml(xmlstring):
  root = ElementTree.fromstring(xmlstring)
  task = root.find('task')
  progress = float(task.find('progress').text)
  if progress < 0:
    return 100.0
  else:
    return progress
"""
Get XML Report info 从xml文件查询
  file_path : report path
"""
def get_xml_report(file_path):
  report = {}
  result_dicts = {}
  resultsList = []
  try:
    root = ElementTree.parse(file_path)
  except:
    return {}
  if root is not None:
    creation_time = root.find("creation_time")
    if creation_time is not None:
      report[creation_time.tag] = creation_time.text
    if root.find("report") is not None:
      scan_start = root.find("report").find("scan_start")
      if scan_start is not None:
        if scan_start.text:
          report[scan_start.tag] = scan_start.text
    results = root.getiterator("result")
    if results is not None:
      for result in results:
        if result.find("threat") is not None:
          if result.find("threat").text != "Log":
            resultsList.append(getResults(result))
  report["Results"] = resultsList
  return report

总结

以上所述是小编给大家介绍的Python3使用xml.dom.minidom和xml.etree模块儿解析xml文件封装函数的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
利用Python中unittest实现简单的单元测试实例详解
Jan 09 Python
Python实现的基数排序算法原理与用法实例分析
Nov 23 Python
python决策树之C4.5算法详解
Dec 20 Python
python入门:这篇文章带你直接学会python
Sep 14 Python
使用APScheduler3.0.1 实现定时任务的方法
Jul 22 Python
django admin.py 外键,反向查询的实例
Jul 26 Python
使用python实现unix2dos和dos2unix命令的例子
Aug 13 Python
Python之数据序列化(json、pickle、shelve)详解
Aug 30 Python
如何在VSCode上轻松舒适的配置Python的方法步骤
Oct 28 Python
如何在python中实现线性回归
Aug 10 Python
python 6行代码制作月历生成器
Sep 18 Python
解决PyCharm无法使用lxml库的问题(图解)
Dec 22 Python
详解Python3定时器任务代码
Sep 23 #Python
python应用文件读取与登录注册功能
Sep 23 #Python
Python爬虫 urllib2的使用方法详解
Sep 23 #Python
Python 正则表达式爬虫使用案例解析
Sep 23 #Python
python处理document文档保留原样式
Sep 23 #Python
python 进程间数据共享multiProcess.Manger实现解析
Sep 23 #Python
python程序 线程队列queue使用方法解析
Sep 23 #Python
You might like
全国FM电台频率大全 - 13 福建省
2020/03/11 无线电
Terran兵种对照表
2020/03/14 星际争霸
JS中encodeURIComponent函数用php解码的代码
2012/03/01 PHP
PHP empty函数报错解决办法
2014/03/06 PHP
php使用cookie实现记住用户名和密码实现代码
2015/04/27 PHP
php注册登录系统简化版
2020/12/28 PHP
PHP实现表单提交时去除斜杠的方法
2016/12/26 PHP
PHP简单实现正则匹配省市区的方法
2018/04/13 PHP
根据分辩率调用不同的CSS.
2007/01/08 Javascript
Prototype使用指南之ajax
2007/01/10 Javascript
类似GMAIL的Ajax信息反馈显示
2010/02/16 Javascript
javascript中的注释使用与注意事项小结
2011/09/20 Javascript
js或者jquery判断图片是否加载完成实现代码
2013/03/20 Javascript
jQuery经过一段时间自动隐藏指定元素的方法
2015/03/17 Javascript
jQuery的ajax下载blob文件
2016/07/21 Javascript
Javascript6中字符串的四个新用法分享
2016/09/11 Javascript
详解Javascript几种跨域方式总结
2017/02/27 Javascript
jQuery插件FusionCharts绘制的2D条状图效果【附demo源码】
2017/05/13 jQuery
Nodejs实现用户注册功能
2019/04/14 NodeJs
Vue项目从webpack3.x升级webpack4不完全指南
2019/04/28 Javascript
详解Vue的ref特性的使用
2020/01/24 Javascript
js函数柯里化的方法和作用实例分析
2020/04/11 Javascript
使用js和canvas实现时钟效果
2020/09/08 Javascript
Python判断文件和文件夹是否存在的方法
2015/05/21 Python
python+mysql实现教务管理系统
2019/02/20 Python
python manage.py runserver流程解析
2019/11/08 Python
Django配置文件代码说明
2019/12/04 Python
Python魔法方法 容器部方法详解
2020/01/02 Python
java字符串格式化输出实例讲解
2021/01/06 Python
带薪年假请假条
2014/02/04 职场文书
爱祖国演讲稿
2014/05/04 职场文书
酒店周年庆活动方案
2014/08/21 职场文书
药品销售内勤岗位职责
2015/04/13 职场文书
战友聚会致辞
2015/07/28 职场文书
新郎父母婚礼答谢词
2015/09/29 职场文书
创业计划书之家政服务
2019/09/18 职场文书