• XML模块


    '''类似于data、country、rank、year、GDP这样前后都有的,叫标签tag
    类似于name="america"、updated="yes"这样跟在标签后面,在尖括号里面的叫属性
    类似于2、2008、15222这样跟在尖括号外面的叫文本text'''
    1 import xml.etree.ElementTree as ET
    2 tree = ET.parse('xml_1')   #解析(parse)XML_test中的数据
    3 root = tree.getroot()
    4 print(root.tag)             #拿到根的标签(tag),即data

    遍历xml文档:

    for child in root:
        print(child.tag,child.attrib)   #打印子目录的标签和属性(attribute)
        for i in child:
            print(i.tag,i.text)         #打印孙目录的标签和文本text

    修改:

    for node in root.iter('year'):
        new_year = int(node.text) + 1    #年份加1
        node.text = str(new_year)
        node.set('updated','yes')     #设置属性updated为yes
    tree.write('xml_2.xml')           #不能直接修改原文件,重写到xml_2.xml

    移除排名10以后的国家:

    for country in root.findall('country'):
        rank = int(country.find('rank').text)
        if rank >10:
            root.remove(country)
    tree.write('xml_3.xml')

    自己创建一个xml文件:

     1 import xml.etree.ElementTree as ET
     2 new_xml = ET.Element('namelist')   #创建一个namelist单元
     3 name = ET.SubElement(new_xml,'name',attrib={'enrolled':'yes'})    #在new_xml下创建子单元name
     4 age = ET.SubElement(name,'age',attrib={'checked':'no'})           #在name下创建子单元age
     5 sex =ET.SubElement(name,'sex')                                    #在name下创建子单元sex
     6 age.text = '33'              #设置age的文本值
     7 sex.text = 'M'               #设置sex的文本值
     8 
     9 name2 = ET.SubElement(new_xml,'name2',attrib={'enrolled':'no'})
    10 age = ET.SubElement(name2,'age')
    11 age.text = '19'
    12 
    13 et =ET.ElementTree(new_xml)    #生成文档对象
    14 et.write('test.xml',encoding='utf-8',xml_declaration=True)    #将其写入.xml文件
    15 ET.dump(new_xml)    #打印生成的格式
     
  • 相关阅读:
    Vue数组循环
    vue使用swiper6分页器踩坑
    Vue基础语法(四)
    Vue安装jquery
    Vue基础语法(三)
    Too Rich(贪心加搜索)
    ZOJ Anagrams by Stack(堆栈中的搜索)
    最长子序列和(分治法实现)
    幸运数字(数位dp)
    蜥蜴和地下室(深搜)
  • 原文地址:https://www.cnblogs.com/Finance-IT-gao/p/10501551.html
Copyright © 2020-2023  润新知