zoukankan      html  css  js  c++  java
  • python生成xml文件

    先上代码:

     1 #!/usr/bin/env python3
     2 # _*_ coding: utf-8 _*_
     3 from xml.dom.minidom import Document
     6 
     7 def readFile(filename, lines):
     8     with open(filename, 'r') as f:
     9         for line in f:
    10             line = line.rstrip(' 
    ')
    11             if line.startswith('//') or len(line) == 0:
    12                 continue
    13             lines.append(line)
    14 
    15 def writeXml(filename, lines, tagNames):
    16     # 创建doc
    17     doc = Document()
    18     # 创建根节点
    19     root = doc.createElement(tagNames[0])
    20     doc.appendChild(root)
    21 
    22     # 记录每层节点的最新元素
    23     nodes = {0: root}
    24 
    25     for line in lines:
    26         index = line.rfind(' ')
    27         level = (index + 1) / 4 + 1
    28         line = line.lstrip(' ')
    29         
    30         node = doc.createElement(tagNames[level])
    31         node.setAttribute('name', line)
    32 
    33         nodes[level - 1].appendChild(node)
    34         nodes[level] = node
    35 
    36     with open(filename, 'w') as f:
    37         f.write(doc.toprettyxml(indent='	'))
    38 
    39 def display(lines):
    40     for line in lines:
    41         print(line)
    42 
    43 if __name__ == '__main__':
    44     lines = []
    45     readFile('./file/sector.txt', lines)
    46 
    47     tagNames = ['SectorFile', 'Sectors', 'sector', 'sector_second']
    48     writeXml('./file/sector.xml', lines, tagNames)

    1. 使用库 xml.dom.minidom

    2. readFile函数

    这个函数的功能上读取文件,并把每一行内容除去右边空格,存入列表中

    参数一:文件名

    参数二:文件行存入的列表

    3. writeXml函数

    功能:读取列表,生成xml文件

    参数一:生成的xml文件名

    参数二:文件行列表

    参数三:xml标签名

    此处读取的文件,左侧是通过tab键进行分层的。但由于编辑器设置的一个tab键,替换成四个空格。所以此处的规律是查找最后一个空格出现的位置,加1除4就可以得到该文件在xml中所处的层级。

    第22行:此处的目的是建立一个level-node的字典,用于存放当前层级的最新节点。便于字节点查找父节点

  • 相关阅读:
    CRM 跳转到数据修改页面、动态生成model,form、增加新增页面——第21天
    CRM 日期字段过滤功能——第21天
    CRM多条件查询——第20天
    CRM排序——第19天
    CRM_分页显示——第18天
    CRM分页 ——第17天
    CRM多条件筛选和分页——第16天
    python global、nonlocal、闭包、作用域——第10天
    uniAPP view 和 swiper
    uniAPP tabBar 设置
  • 原文地址:https://www.cnblogs.com/zhugaopeng/p/9665365.html
Copyright © 2011-2022 走看看