首页 > 代码库 > xml模块

xml模块

大纲:

①xml是什么

②配合requests模块,实现对xml数据的提取及修改

③xml中其它的功能

 

一、xml是我们请求网站时,网站会返回数据给我们,xml是返回数据格式的一种。json也是一种格式。

二、对于xml格式的数据处理,废话不多说了,见代码。

解析XML文件

方法一 只适合提取不适合修改

from xml.etree import ElementTree as ET


# 打开文件,读取XML内容
str_xml = open(‘xo.xml‘, ‘r‘).read()

# 将字符串解析成xml特殊对象,root代指xml文件的根节点
root = ET.XML(str_xml)

方法二

注意:getroot()是获得.xml文件的根结点只适用于parse处理后的xml

from xml.etree import ElementTree as ET

# 直接解析xml文件
tree = ET.parse("xo.xml")

# 获取xml文件的根节点
root = tree.getroot()

 

解析XML网址

import requests
from xml.etree import ElementTree as ET  
r = requests.get(‘http://www.webxml.com.cn/WebServices/TrainTimeWebService.asmx/getDetailInfoByTrainCode?TrainCode=G666&UserID=‘)
result = r.text
root = ET.XML(result)
for node in root.iter("TrainDetailInfo"):    #节点    指定的标签要是一个可迭代的对象。
	print(node.find(‘TrainStation‘).text)	 #子节点的内容
	print(node.tag,node.attrib)              #字节点的标签与标签属性

2. 修改指定标签的内容:  是接在get.root()后面执行

for node in root.iter(‘year‘):
	new_year = int(node.text)-1
	node.text = str(new_year)
tree.write(‘first.xml‘)

3. 修改和删除标签属性  

for node in root.iter(‘year‘):
	#修改标签属性
	node.set("name","alex")  
	#删除标签属性
	del node.attrib["name"]
tree.write(‘first.xml‘)

  

  

  

xml模块