• 常用模块——xml模块


    XML 可扩展标记语言

    格式:<></>

    也是一种通用的数据格式

    之所以用它是因为块平台性。

    语法格式

    一、任何的起始标签都必须有⼀一个结束标签。
    <> </>
    二、可以采用另一种简化语法,可以在一个标签中同时表示起始和结束标
    签。这种语法是在⼤于符号之前紧跟一个斜线(/),XML
    解析器会将其翻译成<百度百科词条></百度百科词条>。
    例例如<百度百科词条/>。

    三、标签必须按合适的顺序进⾏行行嵌套,所以结束标签必须按镜像顺序匹配
    起始标签。这好⽐比是将起始和结束标签看作是数学中的左右括号:在没有关闭所有
    的内部括号之前,是不不能关闭外⾯面的括号的。
    四、所有的特性都必须有值。
    五、所有的特性都必须在值的周围加上双引号。

    一个标签的组成部分:
    <tagename 属性名="属性值">文本内容</tagename>
    单标签的写法
    <tagename 属性名 = "属性值"/>
    镜像关闭顺序实例
    <a>
        <b>
            <c>
            </c>
        </b>
    </a>
    信息写成xml
    <studentinfo>
        <张三>
            <age>20</age>
            <gender>man</gender>
        </张三>
        <李四>
            <age>20</age>
            <gender>man</gender>
        </李四>
    </studentinfo>

    总结
    xml也是一种中间格式,也是属于序列化方式之一。
    与json相比较
    同样数据 json会比xml更小,效率更高

    xml需要根据文档结构手动解析,而json直接转对象。

    d.xml

    <?xml version="1.0" encoding="utf-8" ?>
    <studentinfo>
         <stu age="20" name="张三">
             <girlfriend age="19" name="张三的女朋友" />
        </stu>
        <stu age="20" name="李四">
             <girlfriend age="19" name="李四的女朋友" />
        </stu>
    </studentinfo>

    解析xml

    import xml.etree.ElementTree as ElementTree
    #解析d,xml
    tree = ElementTree.parse('d.xml')
    print(tree)#<xml.etree.ElementTree.ElementTree object at 0x0000000002429BA8>
    rootTree=tree.getroot()#获得根标签
    print(rootTree)#<Element 'studentinfo' at 0x00000000023DBA48>

    获得根标签下子标签三种方式:

    iter("tagname")

    # 种获取标签的方式
    # 获取所有人的年龄 iter是用于在全文范围获取标签
    for item in rootTree.iter("age"):
        print(item.tag)
        print(item.attrib)
        print(item.text)

     结果

    age
    {'name': '1'}


    age
    {'name': '2'}

     find()只是找到第一个标签

    print(rootTree.find('age').attrib)
    #{'name': '1'}

    findall()找到所有符合标签名

    print(rootTree.findall('age').__iter__().__next__().attrib)
    #{'name': '1'}

    获得单个属性

    stu = rootTree.find("stu")
    print(stu.get("age"))
    print(stu.get("name"))

    删除子标签

    rootTree.remove(stu)

    创建新的标签

    new = ElementTree.Element('new_tag',{'属性名':111})
    rootTree.append(new)
    tree.write('f.xml',encoding='utf-8')#写入文件
  • 相关阅读:
    cookie标准话
    thinkphp关联查询
    jq获取表单值与赋值代码
    Github使用.gitignore文件忽略不必要上传的文件 (转)
    python 库 Numpy 中如何求取向量范数 np.linalg.norm(求范数)(向量的第二范数为传统意义上的向量长度),(如何求取向量的单位向量)
    word 使用中 上标符号的实现
    python 编程中的一个关于图片的库 imageio (读取照片RGB内容,转换照片格式)
    交叉熵代价函数(作用及公式推导) ------转载
    cousera 深度学习 吴恩达 第一课 第二周 学习率对优化结果的影响
    python3 读入一个jpg格式的图片,并转换长宽像素个数,然后进行绘制
  • 原文地址:https://www.cnblogs.com/msj513/p/9806364.html
Copyright © 2020-2023  润新知