码迷,mamicode.com
首页 > 其他好文 > 详细

xml模块

时间:2017-05-03 17:15:12      阅读:233      评论:0      收藏:0      [点我收藏+]

标签:asmx   内容   div   实现   webx   删除   for   iter   port   

大纲:

①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模块

标签:asmx   内容   div   实现   webx   删除   for   iter   port   

原文地址:http://www.cnblogs.com/learn-python-M/p/6802387.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!