• xml文件解析


    parse(文件名)打开文件并解析,相比于xml少了打开文件那一步

    from xml.etree import ElementTree as ET
    
    # 直接解析xml文件
    tree = ET.parse("xo.xml")
    
    # 获取xml文件的根节点
    root = tree.getroot()      通过getroot获取根节点
    
    对于任何标签都可以有三个特征:标签名、标签属性、标签的文本内容(不一定都会把三个写全)
    print(root.tag) # 标签名
    print(root.attrib) # 标签属性
    print(root.text) # 标签的文本内容

    import xml.etree.ElementTree as ET  # 后面调用都用ET

    tree = ET.parse("a.xml") # 直接解析xml文件
    # print(tree) # <xml.etree.ElementTree.ElementTree object at 0x000001BA45A83828>
    root = tree.getroot() # 获得xml文件的根节点
    print(root) # <Element 'data' at 0x000001BA45967638>
    print(list(root))
    [<Element 'country' at 0x0000021A9FC2CDB8>, <Element 'country' at 0x0000021A9FEDB958>, <Element 'country' at 0x0000021A9FEDBAE8>]

    对于任何标签都可以有三个特征:标签名、标签属性、标签的文本内容(不一定都会把三个写全)
    print(root.tag) 标签名
    print(root.attrib) 标签属性
    print(root.text) 标签的文本内容

    print(list(root.iter('year')))#全文搜索,找到所有
    [<Element 'year' at 0x0000022042A441D8>, <Element 'year' at 0x0000022042A4BA48>, <Element 'year' at 0x0000022042A4BBD8>]

    for year in root.iter('year'):
    print(year.tag)
    print(year.attrib) year # 没有标签的属性
    print(year.text)
    print('='*100)


    print(root.find('country').attrib) #在root的子节点找,只找一个 # {'name': 'Liechtenstein'}
    print(root.findall('country').attrib) #在root的子节点找,只找一个 # 错误
    print([country.attrib for country in root.findall('country')]) #在root的子节点找,找所有
    [{'name': 'Liechtenstein'}, {'name': 'Singapore'}, {'name': 'Panama'}]


    1、查
    遍历整个文档
    for country in root: # 打印整个xml文档
    print('============>国家 %s' %country.attrib)
    for item in country:
    print(item.tag)
    print(item.attrib)
    print(item.text)

    2、改
    for year in root.iter('year'):
    print(year.tag)
    year.attrib={'updated':'yes'} # 添加year标签属性
    year.text=str(int(year.text)+1) # 年份加1 先转换成int进行

    tree.write('a.xml')

    3、增
    for country in root:
    rank=country.find('rank')
    if int(rank.text) > 50:
    # print('符号条的国家',country.attrib)
    tag=ET.Element('egon')
    tag.attrib={'updated':'yes'}
    tag.text='NB'
    country.append(tag)
    #
    tree.write('a.xml')
    4、删

    for country in root:
    tag=country.find('egon')
    # print(tag,bool(tag))
    if tag is not None:
    print('====>')
    country.remove(tag)
    tree.write('a.xml')
  • 相关阅读:
    SWT的TreeViewer和TableViewer的交互
    利用SVNKit进行版本库的树的导出
    使用SVNkit删除版本库的文件
    SVN中正确的add操作和delete操作
    SVNKIT一段代码的分析
    Eclipse中的SVN的冲突解决方案详解
    CSS3实现小于1px的边框(移动端)
    向左滑动删除一区域内容(移动端)
    下拉框文本框+复选(选中的显示在文本框中)
    弹性盒布局(自适应)
  • 原文地址:https://www.cnblogs.com/Roc-Atlantis/p/9225281.html
Copyright © 2020-2023  润新知