问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

1、使用python读取依据生成的xml文件,添加样式表,最中生成一个html文件...

发布网友 发布时间:2022-04-23 16:46

我来回答

1个回答

热心网友 时间:2022-04-18 07:50

#coding=utf8

# 引入要用到的xml解析库 这里我们用比较轻量级的minidom就行了
import xml.dom.minidom

# 定义一个html输出模板
# 后面我们只是要把这段html中的学生数据部分(<student_trs/>)换成xml中读到的数据
template = """
<html>
<table border="1" style="width: 100%;text-align: center;">
    <tr>
        <td colspan="4" >学生信息</td>
    </tr>
    <student_trs/>
</table>
</html>
"""

# 读取xml文档内容,这里假设是a.xml
dom = xml.dom.minidom.parse('a.xml')

# 获取xml中的所有student节点
student_nodes = dom.getElementsByTagName('student')

# 初始化student_trs为空
student_trs = ""

# 遍历每一条学生信息
for node in student_nodes:
    # getAttribute 用户获取节点的属性,得到id属性值即学号
    # 因为xml解析后是Unicode编码的,所以这里要转成utf8编码,下面同理
    sid = node.getAttribute("id").encode('utf-8') 
    # 获取所有子节点
    children = node.childNodes
    for child in children:
        # 判断子节点的名字为 姓名、性别、专业 的话,就采集其对应文本
        if child.nodeName.encode('utf-8') == "姓名":
            # 使用 。childNodes[0].nodeValue 的方法得到节点的文本
            name = child.childNodes[0].nodeValue.encode('utf-8') 
        if child.nodeName.encode('utf-8') == "性别":
            sex = child.childNodes[0].nodeValue.encode('utf-8') 
        if child.nodeName.encode('utf-8') == "专业":
            specialty = child.childNodes[0].nodeValue.encode('utf-8')
    # 组成html中的一行学生数据
    student_tr = "<tr><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>" % (sid, name, sex, specialty)
    # 将这一行数据添加到总数据中
    student_trs += student_tr

# 替换模板的<student_trs/>为我们上面所得到的html数据
html = template.replace("<student_trs/>", student_trs)

# 输入html结果到 output.html
open("output.html", "w").write(html)


# PS:你提供的xml数据有问题,确实了一个</students>标记
# 正确的xml应该如下
"""
<?xml version="1.0" encoding="UTF-8"?>
<person>
    <students>
        <student id="20140711">
            <姓名>三</姓名>
            <性别>男</性别>
            <专业>计算机</专业>
        </student>
    </students>
</person>
"""

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
华丽转身为什么在优酷看不了了之 《华丽转身:爱情不在服务区》txt全集下载 翡翠台华丽转身英文曲 matplotlib中plt.imshow函数画图出现的颜色问题 数字图像处理(c++ opencv):形态学图像处理-提取连通域 ...opencv做东西,网上的程序读着还可以,程序遇到问题不会改,一些函_百... 深度学习面试问题总结 | 传统图像处理——OpenCV 活虾如何在晚上保持存活状态进行保存? neu代表什么意思 民办学校和私立学校的区别是什么民办学校和私立学校的区别 我打算用python去处理html的form表单,该怎么实现 唐代的胡椒粉有多值钱,能让贪污此物的元载灭门? 怎样用python脚本生成一个html格式的测试报告 爱情公寓带字情侣头像之吕子乔和陈美嘉(一)一男一女一左一右 怎么用python 将以下形式的文档转化成 html格式? 一个带有桐字和磊字的情侣头像 怎么用python 编写 得到本地网页html中的表格 只有一个“他”字的头像可以与下面的这一张成为情侣头像的图片 情侣头像加字的!!! 情侣头像男生的图片带有沉默字体那女生应该是那样 亲们,有没有这一对带字的情侣头像,字是她的王和他的妃 怎么才能在图片上加一些情侣头像那样的字? 求一张灰色的带LOVE字体的情侣头像, 头像上的LOVE是用手指的8023摆成的。 带字的情侣头像是怎么做的 求带字的情侣头像,一男一女 若相惜不弃,带字情侣头像 《温暖的弦》张钧甯大结局是什么? 求一张和这个图片一样的背景一样的字体的情侣头像,把那个欣字改成阳字 带字情侣头像 丫头你是我的宝和小子你是我的一切 头像 37岁张钧甯遇上同年龄的张韶涵,她们有什么区别? 为什么在古代胡椒粉那么珍贵? python HTML展示表格数据(有合并的单元格) 唐朝时期的胡椒粉究竟能值多少钱,为何会招来杀身之祸呢? python 生成html用什么库 胡椒粉为什么有的贵,有的便宜,有什么不同之处 python使用plotly生成了多个离线图表,如何将他们合并成一个html做展示... 导致元载招来灭门之灾的64吨胡椒粉,在现在算来能值得多少钱呢? 拼多多白胡椒朱立9.9(斤)是真的吗? 元载贪污,招来灭门之灾的64吨胡椒粉,放到现在值多少钱? iphone 6提示数据线未认证怎么办? 在python中怎么生成html格式的邮件并发送 大臣家藏6万4千公斤胡椒粉,为何君王得知大怒:“把他给我斩了?” python+selenium,关于操作HTML表格相关问题 小朋友问我为什么胡椒粉比五香粉贵,怎么解释清楚? python的库,xlwt或者xlrd可以另存为html类型么? 淘宝上500克一瓶胡椒粉怎么才十几块?? 如何用python+selenium+phantomjs获得一个网页的动态生成的html代码 元载因贪污64吨胡椒粉招来灭门之灾,唐朝64吨的胡椒粉多值钱? 胡椒粉多少一斤 如何用python,html,数据库建一个登陆管理系统