Python解析XMLファイル生成HTML
2885 ワード
XMLファイルresult.xml、内容は以下の通りです.
Jinja 2によるHTMLの生成
テンプレートファイル
レンダリングスクリプト:
: Python XMLを く するいくつかの xml.etree.ElementTree — The ElementTree XML API Does the Jinja2 templating language have the concept of 'here' (current directory)? Jinja 2 へようこそ jinja 2テンプレート
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)
Jinja 2による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)
: