• xml模塊


    XML 全称  可扩展标记语言
    <tag></tag> 双标签
    <tag/> 单标签 没有文本 一般用于设计文档结构 例如换行等
    <tr/> 表示换行


    <tag style="color:red" age="18">12345</tag>
    一个标签的完整组成 有三个部分
    tag 是标签名称
    12345 是文本内容 text
    name = "jack" 是标签的属性


    其他的规范
    1.又开始就必须有结束
    2.所有属性值必须包含在双引号里面
    3.只能有一个根标签 (最外层只能有一个标签)
    4.开始标签和结束标签的顺序是相反的 最先打开谁 就最后关闭谁 最后打开的最先关闭
    文档声明可不写 主要是告诉浏览器 该怎么解析这个文件
    xml模块是自带的 不需要安装

    与json的区别
    xml 是一种可扩展的标记语言
    可以高度自定义文档的结构 数据类型 标签的含义等等
    所以扩展性远比JSON要强

    json更加适用于 前后台数据交换 优点 轻量级 跨平台 语法简洁
    xml更多用来作为配置文件 当然 python不太常用
    html就是一种xml


    import xml.etree.ElementTree as ET
    
    tree = ET.parse("text.xml")
    root = tree.getroot()
    
    # 找到所有的country标签x
    
    # es = root.findall("country")
    # 获取某个标签的 标签名 属性 以及文本
    # for e in es:
    #     print(e.tag) # 标签名称
    #     print(e.attrib) # 标签的所有属性 返回一个字典
    #     print(e.text) # 标签的文本内容

    修改標簽的某個屬性

    import xml.etree.ElementTree as ET
    from xml.etree.ElementTree import Element
    tree = ET.parse("test.xml")
    root = tree.getroot()
    # 修改文本
    root.text = "这是跟标签的文本"
    # 修改属性 没有则添加 有则覆盖
    root.set("name","jack")
    # 修改标签名字
    root.tag = "data"
    
    tree.write("test2.xml",encoding="utf-8",xml_declaration=True)
    
    
    
    
    
    把test1.xml 中所有year标签的text加1
    tree = ET.parse("test1.xml")
    root = tree.getroot()
    for e in root.iter("year"):
        e.text = str(int(e.text) + 1)
    
    
    tree.write("test1.xml")
    
    
    
    把test1.xml 中所有gdppc删除
    remove 函数 需要一个标签作为参数 即要被删除的标签   然后只能有父标签来删除子标签
    tree = ET.parse("test1.xml")
    root = tree.getroot()
    
    for c in root.iter("country"):
        gdppc = c.find("gdppc")
        if gdppc != None:
            c.remove(gdppc)
    
    tree.write("test4.xml")
    
    
    # 添加标签
    
    tree = ET.parse("test1.xml")
    root = tree.getroot() # type:Element
    # 创建需要被添加的子标签
    new_tag = Element("ThisIsNewTag")
    new_tag.text = "123" # 设置文本
    root.append(new_tag) # 添加到root下
    tree.write("test5.xml") # 写入文件
  • 相关阅读:
    我的第一颗二叉链树的笔记
    我的kmp笔记
    链表操作笔记
    POJ 2559 Largest Rectangle in a Histogram (单调栈)
    牛客网 wyh的数列(循环节+快速幂)
    数论知识点
    牛客网 n的约数 (唯一分解定理)
    POJ 3783 Balls (DP)
    关于unordered_map和map
    2018年四校联合周赛-第二场 B.异或和问题(二维树状数组)
  • 原文地址:https://www.cnblogs.com/duGD/p/10872482.html
Copyright © 2020-2023  润新知