python成长之路19——XML和requests
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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>
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的主要内容,如果未能解决你的问题,请参考以下文章