Python3使用xml.dom.minidom和xml.etree模块儿解析xml文件封装函数的方法
作者:撒欢 发布时间:2023-12-19 22:42:41
标签:python,xml.dom.minidom,xml.etree,封装函数
总结了一下使用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文件封装函数的方法,网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
来源:https://www.cnblogs.com/frisk/p/11568205.html


猜你喜欢
- 本文实例讲述了python检查字符串是否是正确ISBN的方法。分享给大家供大家参考。具体实现方法如下:def isISBN(isbn):
- 前言层次聚类是流行的无监督学习算法之一。层次聚类所做的就是找到数据集中具有相似属性的元素,并将它们组合在一个集群中。最后,我们得到一个单一的
- 1. 简介 追踪某些软件运行时所发生事件的方法, 可以在代码中调用日志中某些方法来记录发生的事情一个事件可以用一个可包含可选变量数
- 1、说明Tasks用于并发调度协程,通过asyncio.create_task(协程对象)创建Task对象,使协程能够加入事件循环,等待调度
- Python2.5之后引入了上下文管理器(context manager),算是Python的黑魔法之一,它用于规定某个对象的使用范围。本文
- ERROR 1819 (HY000): Your password does not satisfy the current policy
- 1、检测登录状态base.pydef checkLogin(func):""" 查看session
- Mysql中的concat函数(拼接函数)概述很多时候,我们需要将不同地方获得的字符串拼接在一起,此时就需要使用CONCAT和CONCAT_
- 如下所示:# -*- coding: utf-8 -*-import os import pandas as pdimport numpy
- 基于python的web项目,常见的部署方法有: fcgi:用spawn-fcg
- 本篇没有考虑异步,多线程及SQL注入WebDatabase 规范中说这份规范不再维护了,原因是同质化(几乎实现者都选择了Sqlite),且不
- 概述在之前的风资源分析文章中,有提到过用widrose包来进行玫瑰图的绘制,目前的可视化绘图包有很多,但是最基础和底层的,本人认为还是mat
- 下面是一份在 HTML 4 Strict 和 XHTML 1.0 Strict 下必须遵守的标签嵌套规则,比如你不能在 <a>
- 本文实例为大家分享了python3.5 email发送邮件的具体代码,供大家参考,具体内容如下直接套用代码即可from email.mime
- 递归一个函数在执行过程中一次或多次调用其本身便是递归,就像是俄罗斯套娃一样,一个娃娃里包含另一个娃娃。递归其实是程序设计语言学习过程中很快就
- 新建项目时,选择新建虚拟环境项目打开后,启动终端,却经常发现,并没有开启虚拟环境,导致一些包都被安装到全局环境中。一种解决办法是手动开启虚拟
- PHP addslashes() 函数实例在每个双引号(")前添加反斜杠:<?php $str = addslashes(&
- 一 Django的视图函数view一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受Web请求并且返回Web响应。响
- mysql慢查询日志对于跟踪有问题的查询非常有用,可以分析出当前程序里有很耗费资源的sql语句,那如何打开mysql的慢查询日志记录呢?其实
- 1、Motivation:I wanna modify the value of some param;I wanna check the