python创建和解析XML
2016-12-15 18:33
423 查看
1. xml创建,网上教程很多,但有些暗坑还是要记下来
a. xml第一行的standalone无法通过属性设置,最好是自己设置然后拼接
2.xml解析
a.url 返回的字符集有可能不是utf-8的,会导致解析xml的时候出错,因此需要解析字符集编码为utf-8
b.xml中的encoding必须="utf-8",如果不是,需要自己使用字符串方法替换为utf-8
a. xml第一行的standalone无法通过属性设置,最好是自己设置然后拼接
2.xml解析
a.url 返回的字符集有可能不是utf-8的,会导致解析xml的时候出错,因此需要解析字符集编码为utf-8
b.xml中的encoding必须="utf-8",如果不是,需要自己使用字符串方法替换为utf-8
from xml.etree import ElementTree as ET import requests from pydoc import doc import collections url='http://xx.xx.x.x:xx/xx/xx/active?msg=' def xml_building(num,sys_id='8888',cmd_id='test'): #含有默认值的参数放在不含默认值的参数前边会有歧义 ''' xml 构建 xml第一行的standalone无法通过属性设置,最好是自己设置然后拼接 http://stackoverflow.com/questions/3982887/how-to-add-xml-header-to-dom-object ''' #存储字符串 str_list=[] #xml第一行 str_list.append('<?xml version="1.0" encoding="GB2312" standalone="yes"?>') #root root=ET.Element('command') sysid=ET.SubElement(root,'sysid') sysid.text=sys_id cmdid=ET.SubElement(root,'cmdid') cmdid.text=cmd_id #subchild params=ET.SubElement(root,'params') phonenum=ET.SubElement(params,'phonenum') phonenum.text=num xml_string=ET.tostring(root) str_list.append(xml_string) return ''.join(str_list) def xml_get(url): try: url=url.encode('utf-8') r=requests.get(url,timeout=30) ''' url 返回的字符集有可能不是utf-8的,会导致解析xml的时候出错,因此需要解析字符集编码为utf-8 ''' return r.text.encode('utf-8') except requests.exceptions.RequestException as e: raise e def xml_replace_header(xml_str): try: '''xml解析的时候要求encoding=utf-8 ''' return xml_str.replace('encoding="GB2312"','encoding="utf-8"') except Exception as e: raise e def xml_parsing(xml): ''' xml解析 ''' try: xml_tuple=collections.namedtuple('xml_tuple','sysid,cmdid,resultnum, reason') doc=ET.ElementTree(ET.fromstring(xml)) resultnum=doc.find('result_num') reason=doc.find('reason') xml_tuple.resultnum=resultnum.text xml_tuple.reason=reason.text return xml_tuple except Exception as e: raise e
相关文章推荐
- python 创建并解析XML
- Python XML的解析与创建
- Python XML的解析与创建
- python创建并解析xml文件
- python自带的minidom创建和解析xml
- Python基础(十一) 使用xml.dom 创建XML文件与解析
- python解析xml(创建xml)
- 使用python自带的xml.dom创建和解析xml
- python创建和解析xml文件
- Python的xml.dom.mindom在处理CDATA时候把空格解析为textnode
- [Python]快速解析数据库视图XML配置获取数据库字段说明
- python小例子之3 -- 解析xml文本
- Python与xml之解析篇
- xml解析与创建
- python 解析XML
- java中利用dom4j对XML文档的创建、解析、查找、修改、保存等操作。
- Android高手进阶教程(二十一)之---Android中创建与几种解析xml的方法!
- MsXml创建和解析XML示例
- Ruby之————XML创建与解析
- python 创建xml