首页 > 代码库 > python成长之路19——XML和requests

python成长之路19——XML和requests

一、XML

XML是实现不同语言或程序之间进行数据交换的协议,XML文件格式如下:

<data>
    <country name="Liechtenstein">
        <rank updated="yes">2</rank>
        <year>2023</year>
        <gdppc>141100</gdppc>
        <neighbor direction="E" name="Austria" />
        <neighbor direction="W" name="Switzerland" />
    </country>
    <country name="Singapore">
        <rank updated="yes">5</rank>
        <year>2026</year>
        <gdppc>59900</gdppc>
        <neighbor direction="N" name="Malaysia" />
    </country>
    <country name="Panama">
        <rank updated="yes">69</rank>
        <year>2026</year>
        <gdppc>13600</gdppc>
        <neighbor direction="W" name="Costa Rica" />
        <neighbor direction="E" name="Colombia" />
    </country>
</data>

1.解析XML

技术分享
 1 from xml.etree import ElementTree as ET
 2 
 3 #解析方式一:
 4 #利用ElementTree.XML将字符串解析成xml对象
 5 #打开文件,读取XML内容
 6 str_xml=open(s1.xml,r).read()
 7 
 8 #将字符串解析成xml特殊对象,root代指xml文件的根节点
 9 root=ET.XML(str_xml)
10 print(root)
11 
12 #########################################
13 
14 #解析方式二:
15 #利用ElementTree.parse将文件直接解析成xml对象
16 tree=ET.parse(s1.xml)
17 
18 #获取xml文件的根节点
19 r=tree.getroot()
20 print(r)
21 
22 执行结果:
23 <Element data at 0x10193db38>
24 <Element data at 0x101a20868>
解析xml

2.操作XML

XML格式类型是节点嵌套节点,对于每一个节点均有一下功能,一边对当前节点进行操作:

 1 假设节点是---node
 2 
 3 node.tag                             #当前节点的标签名
 4 node.attrib                          #当前节点的属性    
 5 node.text                            #当前节点的内容
 6 
 7 mekeelement(tag,attrib)               #创建一个新节点
 8 copy()                                #复制节点
 9 append(subelement)                    #为当前节点追加一个子节点
10 extend(elements)                      #为当前节点扩展n个子节点
11 insert(index,subelement)              #在当前节点的子节点中插入某个节点,即:为当前节点创建子节点,然后插入指定位置
12 remove(subelement)                    #删除当前节点的某个子节点
13 find(path,namespaces=None)            #获取第一个寻找到的子节点
14 findtext(path,default=None,namespaces=None)#获取第一个寻找到的子节点的内容
15 findall(path,namespaces=None)         #获取所有的子节点
16 iterfind(path,namespaces=None)        #获取所有指定的节点,并创建一个迭代器
17 clear()                               #清空节点
18 get(key,default=None)                 #获取当前节点的属性值
19 set(key,value)                        #为当前节点设置属性值
20 keys()                                #获取当前节点所有属性的key
21 items()                               #获取当前节点的所有属性值,每个属性都是一个键值对
22 iter(tag=None)                        #当前节点的子孙中根据节点名称寻找所有指定的节点,并返回一个迭代器
23 itertext()                            #在当前节点的子孙中根据节点名称寻找所有指定的节点的内容,并返回一个迭代器

 

python成长之路19——XML和requests