Python解析XMLファイル生成HTML

2885 ワード

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)

Jinja 2によるHTMLの生成
テンプレートファイルtempla/base.html:




    Radon
    
    
    



    

Radon-

{% for td in data[0] %} {% endfor %} {%for m in data%} {% set complexity = m[0].text|float %} {% if m[0].text|float < 6 %} # {% if complexity < 6 %} {% for v in m %} {% endfor %} {% else %} {% for v in m %} {% endfor %} {% endif %} {%endfor%}
{{ td.tag }}
{{v.text}}
{{v.text}}

レンダリングスクリプト:
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)

:
  • 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テンプレート