Python3 ElementTree.tostring()导致标签前辍变为ns0/ns1处理
一、说明
python中我们经常借助xml.etree.ElementTree对xml进行处理,其中ElementTree.fromstring()将字符串格式化成et对象,ElementTree.tostring()将et对象转回字符串。
但ElementTree.tostring()转回字符串时,有可能会出现标签从<config>变为<ns0:config>或<s:config>变为<ns0:config>的情况,尤其在处理soap请求的时候。
二、处理办法
暂时还没搞清楚什么情况会变什么情况不会变,但处理办法就是使用ElementTree.register_namespace()注册命名空间。
直接使用stackoverflow的回答(https://stackoverflow.com/questions/8983041/saving-xml-files-using-elementtree):

从效果上个人理解为:
如果父标签的那堆xmlns中有这些url,那么如果其子孙标签中如果有“ows”这些前辍,要认为这些前辍是合法的不要去改变他们(即不要改成ns0等);第一个‘’表示空前辍。
另外注意两点:
一是那些url并不(一定)是什么存在标准规范的urlET也不会去访问这些url,url就是ET分析xml时当标志使用乱来也是可以的,只要要分析xml和register_namespace的url一致即可。
二是soap也是xml,所以ElementTree处理soap引起标签改变也同这里一样用register_namespace处理即可。
三、效果演示
直接ElementTree.fromstring()-ElementTree.tostring()引起标签自动添回ns0前辍如下:

ElementTree.fromstring()-ElementTree.tostring()前插入ET.register_namespace('', "http://www.ipc.com/ver10"),结果转回正常如下:

参考:
https://stackoverflow.com/questions/8983041/saving-xml-files-using-elementtree
Python3 ElementTree.tostring()导致标签前辍变为ns0/ns1处理的更多相关文章
- ride.py在运行python3.×版本后导致无法运行及解决办法
最近一直在自学python自动化,网上看到rf框架挺适合初学自动化测试,于是通过虫师的搭建了rf框架, 但是在使用过程中遇到了一个问题,在网上没有找到明确解决办法于是想到记录一下 之前为了搭建rf框架 ...
- Python3正则去掉HTML标签
Python3正则去掉HTML标签 1.引用一段代码 import re html = '<pre class="line mt-10 q-content" accuse=& ...
- Python3获取豆瓣图书标签的前20本热门书籍(一)
介绍 第一篇主要获取豆瓣的大分类.大分类下的具体分类以及具体分类下的前20本热门书籍,第二篇对获取的数据进行分析. 准备 Python3.6.requests.BeautifulSoup4 演示 代码 ...
- centos7安装python3.6后导致防火墙功能无法正常工作的解决办法
问题:因为默认python版本被设置成了python3.6,而进行防火墙的指令操作频频报错. Jul 19 16:30:51 localhost.localdomain systemd[1]: Sta ...
- 解决Bootstrap布局注册表单input标签前增加必填项*提示与input框不在同一行问题
注册表单部分代码如下: <form id="registForm" class="form-horizontal" action="${page ...
- Oracle数据库案例整理-Oracle系统执行时故障-断电导致数据文件状态变为RECOVER
1.1 现象描写叙述异常断电.数据库数据文件的状态由ONLINE变为RECOVER. 系统显演示样例如以下信息:SQL>selectfile_name,tablespace_name, ...
- webservice因引用Oracle.DataAccess.dll导致发布前预编译不通过
这个问题最初是什么问题已经忘了,虽然就在几小时前/
- python3的pickle导致乱码
资料: http://www.cnblogs.com/pzxbc/archive/2012/03/18/2404715.html http://bbs.chinaunix.net/thread-419 ...
- <UL>中<li>标签前编号图片的简单调用
<style type="text/css"> ul li{ list-style-type:none} .men ul{ background:url(http:// ...
随机推荐
- python 安装插件 requests、BeautifulSoup
安装第三方插件库 1. requests , 下载地址 https://github.com/requests/requests 安装: 利用 pip 安装 pip3 install request ...
- 深究CSS中Position的属性和特性
一.position的概念 作为布局必不可缺少的元素之一,深究其属性以及一些注意点是非常必要的. 定义:规定元素的定位类型. position属性: 属性 描述 常用性 absolute 生成绝对定位 ...
- 烽火HG220G-U E00L2.03M2000光猫改桥接教程
烽火HG220G-U E00L2.03M2000光猫改桥接教程 P.S. 此教程同样适用于HG221G/HG260G-U/HG261G.(2016.12) 随着北京联通从原有的ONU升级到HGU之后, ...
- ssh连接服务器
1.命令行操作 第一步输入 :ssh 用户名@服务器外网ip 第二步:输入密码,回车 看到welcome提示信息即为登陆成功 输入:exit 退出 2.客户端操作 windows下载ssh软件,安装 ...
- JavaSE习题 继承接口和泛型
问答题: 1.子类在什么情况下可以继承父类友好成员? 答:在同一个包内 2.子类通过怎样的方法可以隐藏继承的成员变量? 答:声明一个与父类相同变量名的成员变量 3.子类重写继承的方法原则是什么? 答: ...
- 前端调用接口报错看不到报错响应时 console.dir
console.dir() 可以看到很多.log看不到的属性和方法
- shell和shell脚本基本知识
详情可见: https://www.cnblogs.com/yinheyi/p/6648242.html 这张图,可以帮助我们理解这个词语! 最底下是计算机硬件,然后硬件被系统核心包住,在系统核心外层 ...
- spring boot: 支持jsp,支持freemarker
spring boot: 支持jsp,支持freemarker 支持jsp: 加入依赖 <!--jsp--> <dependency> <groupId>org.a ...
- 20165303实验一 Java开发环境的熟悉
实验一简单的java程序编译及运行,文件夹的创建 1.添加文件夹: 命令mkdir+文件夹名称 2.编译,运行Java程序 :javac 主类名.java java 主类名 3.带包(package) ...
- java.lang.NoClassDefFoundError: org/springframework/web/context/WebApplicationContext
一.NoClassDefFoundError与ClassNotFoundException NoClassDefFoundError错误的发生,是因为Java虚拟机在编译时能找到合适的类,而在运行时不 ...