zoukankan      html  css  js  c++  java
  • Python基础-----xml模块

    1、xml模块介绍及用法
      xml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但json使用起来更简单。
      xml的格式通过<>节点来区别数据结构的
    import xml.etree.ElementTree as ET
    
    tree = ET.parse("xml_temp.xml")       #parse()解析   对xml文件进行解析
    root = tree.getroot()                  #getroot()获取 xml文件的根节点,该例为 <data>
    print(root.tag)                          #.tag 获取xml文件的根节点标签名,该例为 data
    
    遍历xml文档
    for child in root:                    #遍历根节点下的子节点
        print(child.tag, child.attrib)  #遍历打印出子节点下的.tag标签名和.attrib属性(以字典键值对形式)
                                        #  count  {'name':'Liechtenstein'}
        for i in child:                    #遍历子节点下的子元素(rank  year  gdppc  neighbor)
            print(i.tag,i.text)            #遍历打印出子节点下的子元素.tag标签名和.text值,没有则返回None
                                        #rank 2
    #只遍历year 节点
    for node in root.iter('year'):        #root.iter('year')获取到根(data)下的所有'year'节点标签进行遍历
        print(node.tag,node.text)         #遍历打印出'year'标签的标签名和值(text)   year 2008
    #修改
    for node in root.iter('year'):
    new_year = int(node.text) + 2 #对所有的'year'节点标签的值年份值修改 +2
    node.text = str(new_year)
    node.set("updated","yes") #属性修改,对所有的'year'节点标签增加一个‘updated’属性,并赋值为'yes'
    tree.write("xmltest.xml") #写入文本,修改才会生效(名字可以重复,重复即覆盖)

    #删除node
    for country in root.findall('country'): #root.findall('country')查找data下的所有country
    rank = int(country.find('rank').text) #country.find('rank').text查找country节点下'rank'标签的值
    if rank > 50: #'rank'标签的值>50
    root.remove(country) # 则删除这个country的整体信息
    tree.write('output.xml')
     

    2、创建xml文档

    import xml.etree.ElementTree as ET
    
    new_xml = ET.Element("namelist")                                    #创建根节点(标签)
    name = ET.SubElement(new_xml,"name",attrib={"enrolled":"yes"})      #在上述根节点下创建子节点'name',
                                                                        # 并添加"enrolled"属性和值"yes"
    age = ET.SubElement(name,"age",attrib={"checked":"no"})             #在'name'标签下创建子节点'age',并添加属性和值
    sex = ET.SubElement(name,"sex")
    sex.text = '33'                                                     #对'name'标签下创建的子节点'sex'添加值
    name2 = ET.SubElement(new_xml,"name",attrib={"enrolled":"no"})
    age = ET.SubElement(name2,"age")
    age.text = '19'
     
    et = ET.ElementTree(new_xml)                                        #生成文档树(必不可少)
    et.write("test.xml", encoding="utf-8",xml_declaration=True)         #写入内容(必不可少)
     
    ET.dump(new_xml) #打印生成的格式
  • 相关阅读:
    二项式定理与组合恒等式
    「CEOI2020」象棋世界 题解
    矩阵 题解
    研一总结
    你明白transform中的skew属性是何如变换的吗?
    pip安装包
    Yaml中特殊符号"| > |+ |-"的作用
    使用ROOT用户运行Jenkins
    检查MySQL主从复制运行状态
    powerdesigner 怎么逆向生成 pdm文件
  • 原文地址:https://www.cnblogs.com/Meanwey/p/9741330.html
Copyright © 2011-2022 走看看