python xml解析html_Python 解析 XML 文件生成 HTML

本文演示了如何使用Python的xml.etree.ElementTree模块解析XML文件,并结合Jinja2模板库生成HTML报告。示例中,解析XML文件并遍历元素,最后利用模板将数据渲染成HTML并保存到文件。
摘要由CSDN通过智能技术生成

XML文件result.xml,内容如下:

1

multiply

A

all\mymath.py

9

10

1

divide

A

all\mymath.py

13

14

import xml.etree.cElementTree as ET

import os

import sys

tree = ET.ElementTree(file='result.xml')

# 根元素(root)是一个Element对象。我们看看根元素都有哪些属性

root = tree.getroot()

# 没错,根元素并没有属性。与其他Element对象一样,根元素也具备遍历其直接子元素的接口

for child_of_root in root:

print(child_of_root,child_of_root.attrib)

for x in child_of_root:

print(child_of_root, x, x.tag,':',x.text)

利用Jinja2生成HTML

模版文件templa/base.html:

Radon

Radon-圈复杂度检查结果

{% for td in data[0] %}

{{ td.tag }}

{% endfor %}

{%for m in data%}

{% set complexity = m[0].text|float %}

{% if m[0].text|float < 6 %} #或者 {% if complexity < 6 %}

{% for v in m %}

{{v.text}}

{% endfor %}

{% else %}

{% for v in m %}

{{v.text}}

{% endfor %}

{% endif %}

{%endfor%}

渲染脚本:

from jinja2 import Environment, FileSystemLoader

t=[]

for metric in root:

t.append(metric)

print(t)

xml_loader = FileSystemLoader("template")

xml_env = Environment(loader=xml_loader)

xml_tmp = xml_env.get_template("base.html")

xml_info = xml_tmp.render(data=t)

with open(os.path.join("template", "result.html"), "w") as f:

f.write(xml_info)

参考:

【TensorFlow】Python解析xml文件

最近在项目中使用TensorFlow训练目标检测模型,在制作自己的数据集时使用了labelimg软件对图片进行标注,产生了VOC格式的数据,但标注生成的xml文件标签值难免会产生个别错误造成程序无法跑 ...

python 解析xml 文件&colon; Element Tree 方式

环境 python:3.4.4 准备xml文件 首先新建一个xml文件,countries.xml.内容是在python官网上看到的. <?xml version="1.0" ...

python 解析xml 文件&colon; DOM 方式

环境 python:3.4.4 准备xml文件 首先新建一个xml文件,countries.xml.内容是在python官网上看到的. <?xml version="1.0" ...

python 解析xml 文件&colon; SAX方式

环境 python:3.4.4 准备xml文件 首先新建一个xml文件,countries.xml.内容是在python官网上看到的. <?xml version="1.0" ...

遍历文件 创建XML对象 方法 python解析XML文件 提取坐标计存入文件

XML文件??? xml即可扩展标记语言,它可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言. 里面的标签都是可以随心所欲的按照他的命名规则来定义的,文件名为roi.xm ...

Python解析xml文件遇到的编码解析的问题

使用python对xml文件进行解析的时候,假设xml文件的头文件是utf-8格式的编码,那么解析是ok的,但假设是其它格式将会出现例如以下异常: xml.parsers.expat.ExpatErr ...

python 解析 XML文件

如下使用xml.etree.ElementTree模块来解析XML文件.ElementTree模块中提供了两个类用来完成这个目的: ElementTree表示整个XML文件(一个树形结构) Eleme ...

&lbrack;转载&rsqb; python 解析xml 文件&colon; SAX方式

环境 python:3.4.4 准备xml文件 首先新建一个xml文件,countries.xml.内容是在python官网上看到的. <?xml version="1.0" ...

python解析xml文件时使用ElementTree和cElementTree的不同点;iter

在python中,解析xml文件时,会选用ElementTree或者cElementTree,那么两者有什么不同呢? 1.cElementTree速度上要比ElementTree快,比较cElemen ...

随机推荐

《BI那点儿事》Microsoft 时序算法——验证神奇的斐波那契数列

斐波那契数列指的是这样一个数列 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10 ...

LOAD和PigStorage的一些测试例子 &lpar;转&rpar;

原地址:http://f.dataguru.cn/thread-233064-1-1.htm 因为理解上的错误,在这里被搞糊涂了.通过做测试,应该算是澄清了,所以写出来. 假设有个文件叫test,该文 ...

cygwin 的不同文件类型显示不同的颜色

正常情况下,我们的cygwin安装好之后,不管是文件还是文件夹显示的颜色都是一样的,这样在我们平时的工作中很不方便 所以这里记录一下怎么设置成彩色的,其实很简单. 直接修改文件 .bashrc vim ...

python之map、filter、reduce、lambda函数

map map函数根据提供的函数对指定的序列做映射,定义:map(function, sequence[,sequence,...])--->list 例1 >>> map(l ...

合并多次提交 commits 到 新分支

压缩多个Commit 当你提交代码进行代码审查时或者创建一次pull request (这在开源项目中经常发生),你的代码在被接受之前会被要求做一些变更.于是你进行了变更,并且直到下一次审查之前你没有 ...

JavaScript的一些小用法

1.if问题: var a="this test"; if (a == "this test") //这样写的时候执行不下去了,不知为什么. 修改: var a ...

HDU 4085 Steiner树

主题链接:pid=4085">http://acm.hdu.edu.cn/showproblem.php? pid=4085 由于这题专门花一晚上学习斯坦纳树.找到比較好的学习资料,链 ...

NHibernate中使用memcache二级缓存

在NHibernate中使用memcache二级缓存 一.Windows下安装Memcache  1. 下载   http://jehiah.cz/projects/memcached-win32/  ...

JDBCTemplate与模板设计方法&lpar;二&rpar;

前言:上一篇博客介绍了模板方法模式,并且给出了一个小demo,简单对模板方法进行了实现,接下来我们把目光转向spring的源码JDBCTemplate,看一看spring是如何对jdbc进行高度封装的 ...

百度图片objURL解密vb&period;net版

Function Baidtu_Uncomplie(k As String) As String Dim c = {"_z2C$q", "_z&e3B" ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值