• day22_5-xml模块



    # 参考资料:
    # python模块(转自Yuan先生) - 狂奔__蜗牛 - 博客园
    # https://www.cnblogs.com/guojintao/articles/9070485.html

    # ------------------------------------------------------------
    # ********************day22_5-xml模块 *******************
    # ********************day22_5-xml模块 *******************
    # =====>>>>>>内容概览
    # =====>>>>>>内容概览
    '''
    # ------------------------------------------------------------
    # # 1、xml模块 的解释
    # # # xml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但json使用起来更简单,
    # # # 不过,古时候,在json还没诞生的黑暗年代,大家只能选择用xml呀,至今很多传统公司如金融
    # # # 行业的很多系统的接口还主要是xml。
    # # # xml的格式如下,就是通过<>节点来区别数据结构的
    # ------------------------------------------------------------

    # ------------------------------------------------------------
    # # 2、对xml文件读取标签
    # # # getroot获取根节点
    # ------------------------------------------------------------

    # ------------------------------------------------------------
    # # 3、对xml文件读取二级的标签、属性
    # # # tag、attrib
    # ------------------------------------------------------------

    # ------------------------------------------------------------
    # # 4、对xml文件读取二级的标签、属性、内容
    # # # tag、attrib、test
    # ------------------------------------------------------------

    # ------------------------------------------------------------
    # # 5、对xml文件只遍历year 节点
    # # # node
    # ------------------------------------------------------------

    # ------------------------------------------------------------
    # # 6、对xml文件进行修改
    # # # n
    # ------------------------------------------------------------

    # ------------------------------------------------------------
    # # 7、对xml文件进行删除
    # # # findall可以找的范围比较广一点, find可以找的范围比较小一些
    # # # 先findall,在find,否则会报错
    # ------------------------------------------------------------

    # ------------------------------------------------------------
    # # 8、生成xml文档对象
    # ------------------------------------------------------------

    # ------------------------------------------------------------
    # # 9、生成xml文档对象并且打印,生成格式
    # ------------------------------------------------------------

    
    

    ------------------------------------------------分割线-------------------------------------------------

    ------------------------------------------------分割线-------------------------------------------------

    ------------------------------------------------分割线-------------------------------------------------

    
    
    '''
    # ------------------------------------------------------------
    # # 1、xml模块 的解释
    # # # xml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但json使用起来更简单,
    # # # 不过,古时候,在json还没诞生的黑暗年代,大家只能选择用xml呀,至今很多传统公司如金融
    # # # 行业的很多系统的接口还主要是xml。
    # # # xml的格式如下,就是通过<>节点来区别数据结构的
    # ------------------------------------------------------------
    '''
    
    
    '''
    # 下面实验中所用到的xml文件内容。
    # 储存位置与执行文件同目录
    # 名称:xml_lesson
    <data>
        <country name="Liechtenstein">
            <rank updated="yes">2</rank>
            <year updated="yes">2010</year>
            <gdppc>141100</gdppc>
            <neighbor direction="E" name="Austria" />
            <neighbor direction="W" name="Switzerland" />
        </country>
        <country name="Singapore">
            <rank updated="yes">5</rank>
            <year updated="yes">2013</year>
            <gdppc>59900</gdppc>
            <neighbor direction="N" name="Malaysia" />
        </country>
        <country name="Panama">
            <rank updated="yes">69</rank>
            <year updated="yes">2013</year>
            <gdppc>13600</gdppc>
            <neighbor direction="W" name="Costa Rica" />
            <neighbor direction="E" name="Colombia" />
        </country>
    </data>
    
    '''
    
    
    '''
    # ------------------------------------------------------------
    # # 2、对xml文件读取标签
    # # # getroot获取根节点
    # ------------------------------------------------------------
    '''
    #
    # import xml.etree.ElementTree as ET
    # tree = ET.parse("xml_lesson")
    # root = tree.getroot()
    # print(root.tag)
    #
    # # D:Anaconda3python.exe D:/C_cache/py/day22_os_json_re_etc_MoKuai/day22_5-xml.py
    # # data
    # #
    # # Process finished with exit code 0
    
    
    '''
    # ------------------------------------------------------------
    # # 2、对xml文件读取一级的标签、属性
    # # # tag、attrib
    # ------------------------------------------------------------
    '''
    #
    # import xml.etree.ElementTree as ET
    # tree = ET.parse("xml_lesson")
    # root = tree.getroot()
    # print(root.tag)
    #
    # for i in root:
    #     print("标签:",i.tag)
    #     print("属性:",i.attrib)
    #
    # # D:Anaconda3python.exe D:/C_cache/py/day22_os_json_re_etc_MoKuai/day22_5-xml.py
    # # data
    # # 标签: country
    # # 属性: {'name': 'Liechtenstein'}
    # # 标签: country
    # # 属性: {'name': 'Singapore'}
    # # 标签: country
    # # 属性: {'name': 'Panama'}
    # #
    # # Process finished with exit code 0
    
    
    
    
    
    
    '''
    # ------------------------------------------------------------
    # # 3、对xml文件读取二级的标签、属性
    # # # tag、attrib
    # ------------------------------------------------------------
    '''
    #
    # import xml.etree.ElementTree as ET
    # tree = ET.parse("xml_lesson")
    # root = tree.getroot()
    # print(root.tag)
    #
    # for i in root:
    #     print( ("一级标签:  "+i.tag).center(60,"-"))
    #     print( ("一级属性:  "+str(i.attrib)).center(60,"-"))
    #     for j in i:
    #         print("二级标签:",j.tag)
    #         print("二级属性:",j.attrib)
    #
    # # D:Anaconda3python.exe D:/C_cache/py/day22_os_json_re_etc_MoKuai/day22_5-xml.py
    # # data
    # # -----------------------一级标签:  country-----------------------
    # # --------------一级属性:  {'name': 'Liechtenstein'}--------------
    # # 二级标签: rank
    # # 二级属性: {'updated': 'yes'}
    # # 二级标签: year
    # # 二级属性: {'updated': 'yes'}
    # # 二级标签: gdppc
    # # 二级属性: {}
    # # 二级标签: neighbor
    # # 二级属性: {'direction': 'E', 'name': 'Austria'}
    # # 二级标签: neighbor
    # # 二级属性: {'direction': 'W', 'name': 'Switzerland'}
    # # -----------------------一级标签:  country-----------------------
    # # ----------------一级属性:  {'name': 'Singapore'}----------------
    # # 二级标签: rank
    # # 二级属性: {'updated': 'yes'}
    # # 二级标签: year
    # # 二级属性: {'updated': 'yes'}
    # # 二级标签: gdppc
    # # 二级属性: {}
    # # 二级标签: neighbor
    # # 二级属性: {'direction': 'N', 'name': 'Malaysia'}
    # # -----------------------一级标签:  country-----------------------
    # # -----------------一级属性:  {'name': 'Panama'}------------------
    # # 二级标签: rank
    # # 二级属性: {'updated': 'yes'}
    # # 二级标签: year
    # # 二级属性: {'updated': 'yes'}
    # # 二级标签: gdppc
    # # 二级属性: {}
    # # 二级标签: neighbor
    # # 二级属性: {'direction': 'W', 'name': 'Costa Rica'}
    # # 二级标签: neighbor
    # # 二级属性: {'direction': 'E', 'name': 'Colombia'}
    # #
    # # Process finished with exit code 0
    
    
    
    
    
    
    
    '''
    # ------------------------------------------------------------
    # # 4、对xml文件读取二级的标签、属性、内容
    # # # tag、attrib、test
    # ------------------------------------------------------------
    '''
    #
    # import xml.etree.ElementTree as ET
    # tree = ET.parse("xml_lesson")
    # root = tree.getroot()
    # print(root.tag)
    #
    # for i in root:
    #     print( ("一级标签:  "+i.tag).center(60,"-"))
    #     print( ("一级属性:  "+str(i.attrib)).center(60,"-"))
    #     for j in i:
    #         print("二级标签:",j.tag)
    #         print("二级属性:",j.attrib)
    #         print("二级内容:",j.text)
    #     print("
    ")
    # #
    # # D:Anaconda3python.exe D:/C_cache/py/day22_os_json_re_etc_MoKuai/day22_5-xml.py
    # # data
    # # -----------------------一级标签:  country-----------------------
    # # --------------一级属性:  {'name': 'Liechtenstein'}--------------
    # # 二级标签: rank
    # # 二级属性: {'updated': 'yes'}
    # # 二级内容: 2
    # # 二级标签: year
    # # 二级属性: {'updated': 'yes'}
    # # 二级内容: 2010
    # # 二级标签: gdppc
    # # 二级属性: {}
    # # 二级内容: 141100
    # # 二级标签: neighbor
    # # 二级属性: {'direction': 'E', 'name': 'Austria'}
    # # 二级内容: None
    # # 二级标签: neighbor
    # # 二级属性: {'direction': 'W', 'name': 'Switzerland'}
    # # 二级内容: None
    # #
    # #
    # # -----------------------一级标签:  country-----------------------
    # # ----------------一级属性:  {'name': 'Singapore'}----------------
    # # 二级标签: rank
    # # 二级属性: {'updated': 'yes'}
    # # 二级内容: 5
    # # 二级标签: year
    # # 二级属性: {'updated': 'yes'}
    # # 二级内容: 2013
    # # 二级标签: gdppc
    # # 二级属性: {}
    # # 二级内容: 59900
    # # 二级标签: neighbor
    # # 二级属性: {'direction': 'N', 'name': 'Malaysia'}
    # # 二级内容: None
    # #
    # #
    # # -----------------------一级标签:  country-----------------------
    # # -----------------一级属性:  {'name': 'Panama'}------------------
    # # 二级标签: rank
    # # 二级属性: {'updated': 'yes'}
    # # 二级内容: 69
    # # 二级标签: year
    # # 二级属性: {'updated': 'yes'}
    # # 二级内容: 2013
    # # 二级标签: gdppc
    # # 二级属性: {}
    # # 二级内容: 13600
    # # 二级标签: neighbor
    # # 二级属性: {'direction': 'W', 'name': 'Costa Rica'}
    # # 二级内容: None
    # # 二级标签: neighbor
    # # 二级属性: {'direction': 'E', 'name': 'Colombia'}
    # # 二级内容: None
    # #
    # #
    # #
    # # Process finished with exit code 0
    
    
    
    
    
    
    
    '''
    # ------------------------------------------------------------
    # # 5、对xml文件只遍历year 节点
    # # # node
    # ------------------------------------------------------------
    '''
    #
    # import xml.etree.ElementTree as ET
    # tree = ET.parse("xml_lesson")
    # root = tree.getroot()
    #
    # for node in root.iter("year"):
    #     print("标签:", node.tag, "内容: ",node.text)
    # #
    # # D:Anaconda3python.exe D:/C_cache/py/day22_os_json_re_etc_MoKuai/day22_5-xml.py
    # # 标签: year 内容:  2010
    # # 标签: year 内容:  2013
    # # 标签: year 内容:  2013
    # #
    # # Process finished with exit code 0
    
    
    
    
    
    
    '''
    # ------------------------------------------------------------
    # # 6、对xml文件进行修改
    # # # n
    # ------------------------------------------------------------
    '''
    #
    # import xml.etree.ElementTree as ET
    # tree = ET.parse("xml_lesson")
    # root = tree.getroot()
    #
    # for node in root.iter("year"):
    #     new_year = int(node.text) + 1
    #     new_year = str(new_year) + "--->+1"
    #     node.text = new_year
    #     node.set("updated","yes")
    # # 写入文件,如果文件名与原文件同名, 原文件将被覆盖
    # tree.write("xml_lesson-new")
    #
    # # D:Anaconda3python.exe D:/C_cache/py/day22_os_json_re_etc_MoKuai/day22_5-xml.py
    # #
    # # Process finished with exit code 0
    
    
    
    
    
    
    
    '''
    # ------------------------------------------------------------
    # # 7、对xml文件进行删除
    # # # findall可以找的范围比较广一点, find可以找的范围比较小一些
    # # # 先findall,在find,否则会报错
    # ------------------------------------------------------------
    '''
    #
    # import xml.etree.ElementTree as ET
    # tree = ET.parse("xml_lesson")
    # root = tree.getroot()
    #
    # for country in root.findall("country"):
    #     rank = int(country.find("rank").text)
    #     if rank > 50:
    #         root.remove(country)
    # # 写入文件,如果文件名与原文件同名, 原文件将被覆盖
    # tree.write("xml_lesson-remove")
    
    # D:Anaconda3python.exe D:/C_cache/py/day22_os_json_re_etc_MoKuai/day22_5-xml.py
    #
    # Process finished with exit code 0
    
    
    
    
    
    
    
    
    '''
    # ------------------------------------------------------------
    # # 8、生成xml文档对象
    # ------------------------------------------------------------
    '''
    # import xml.etree.ElementTree as ET
    # new_xml = ET.Element("namelist")
    # '''
    # 生成根节点,如下:
    # <namelist>
    #
    # </namelist>
    # '''
    #
    # name = ET.SubElement(new_xml,"name--1",attrib={"enrolled": "yes"})
    # age  = ET.SubElement(name,   "age---1",attrib={"checked": "no"})
    # sex  = ET.SubElement(name,   "sex---1")
    # sex.text = "male"
    #
    # name2 = ET.SubElement(new_xml,"name--2",attrib={"enrolled": "no"})
    # age2  = ET.SubElement(name2,   "age---2",attrib={"checked": "yes"})
    # # 即使是写入整数,也应该写为字符串模式
    # age2.text = '22'
    # sex  = ET.SubElement(name,   "sex---1")
    #
    # # 生成文档对象
    # et = ET.ElementTree(new_xml)
    # et.write("test.xml", encoding="utf-8", xml_declaration=True)
    #
    # # D:Anaconda3python.exe D:/C_cache/py/day22_os_json_re_etc_MoKuai/day22_5-xml.py
    # #
    # # Process finished with exit code 0
    
    
    
    
    
    
    
    
    
    '''
    # ------------------------------------------------------------
    # # 9、生成xml文档对象并且打印,生成格式
    # ------------------------------------------------------------
    '''
    #
    # import xml.etree.ElementTree as ET
    # new_xml = ET.Element("namelist")
    # '''
    # 生成根节点,如下:
    # <namelist>
    #
    # </namelist>
    # '''
    #
    # name = ET.SubElement(new_xml,"name--1",attrib={"enrolled": "yes"})
    # age  = ET.SubElement(name,   "age---1",attrib={"checked": "no"})
    # sex  = ET.SubElement(name,   "sex---1")
    # sex.text = "male"
    #
    # name2 = ET.SubElement(new_xml,"name--2",attrib={"enrolled": "no"})
    # age2  = ET.SubElement(name2,   "age---2",attrib={"checked": "yes"})
    # # 即使是写入整数,也应该写为字符串模式
    # age2.text = '22'
    # sex  = ET.SubElement(name,   "sex---1")
    #
    # # 生成文档对象
    # et = ET.ElementTree(new_xml)
    # et.write("test.xml", encoding="utf-8", xml_declaration=True)
    # # 打印生成的格式
    # ET.dump(new_xml)
    #
    # # D:Anaconda3python.exe D:/C_cache/py/day22_os_json_re_etc_MoKuai/day22_5-xml.py
    # # <namelist><name--1 enrolled="yes"><age---1 checked="no" /><sex---1>male</sex---1><sex---1 /></name--1><name--2 enrolled="no"><age---2 checked="yes">22</age---2></name--2></namelist>
    # #
    # # Process finished with exit code 0
    
    
    

      

    
    
    
    
  • 相关阅读:
    基于Hadoop的改进Apriori算法
    iOS 访问URL转码
    第一次进入应用图片轮播效果
    购物篮模型&Apriori算法
    Ionicons的使用
    如何在 Eclipse 中使用命令行
    Eclipse输入命令行参数
    CHAR,TCHAR,WCHAR 三者的区别与转换
    函数名、变量前后的_(一个下划线)、__(两个下划线)分别有什么用
    java爬虫简单实现
  • 原文地址:https://www.cnblogs.com/jyfootprint/p/9439045.html
Copyright © 2020-2023  润新知