一、说明

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

https://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.register_namespace

Python3 ElementTree.tostring()导致标签前辍变为ns0/ns1处理的更多相关文章

  1. ride.py在运行python3.×版本后导致无法运行及解决办法

    最近一直在自学python自动化,网上看到rf框架挺适合初学自动化测试,于是通过虫师的搭建了rf框架, 但是在使用过程中遇到了一个问题,在网上没有找到明确解决办法于是想到记录一下 之前为了搭建rf框架 ...

  2. Python3正则去掉HTML标签

    Python3正则去掉HTML标签 1.引用一段代码 import re html = '<pre class="line mt-10 q-content" accuse=& ...

  3. Python3获取豆瓣图书标签的前20本热门书籍(一)

    介绍 第一篇主要获取豆瓣的大分类.大分类下的具体分类以及具体分类下的前20本热门书籍,第二篇对获取的数据进行分析. 准备 Python3.6.requests.BeautifulSoup4 演示 代码 ...

  4. centos7安装python3.6后导致防火墙功能无法正常工作的解决办法

    问题:因为默认python版本被设置成了python3.6,而进行防火墙的指令操作频频报错. Jul 19 16:30:51 localhost.localdomain systemd[1]: Sta ...

  5. 解决Bootstrap布局注册表单input标签前增加必填项*提示与input框不在同一行问题

    注册表单部分代码如下: <form id="registForm" class="form-horizontal" action="${page ...

  6. Oracle数据库案例整理-Oracle系统执行时故障-断电导致数据文件状态变为RECOVER

    1.1      现象描写叙述异常断电.数据库数据文件的状态由ONLINE变为RECOVER. 系统显演示样例如以下信息:SQL>selectfile_name,tablespace_name, ...

  7. webservice因引用Oracle.DataAccess.dll导致发布前预编译不通过

    这个问题最初是什么问题已经忘了,虽然就在几小时前/

  8. python3的pickle导致乱码

    资料: http://www.cnblogs.com/pzxbc/archive/2012/03/18/2404715.html http://bbs.chinaunix.net/thread-419 ...

  9. <UL>中<li>标签前编号图片的简单调用

    <style type="text/css"> ul li{ list-style-type:none} .men ul{ background:url(http:// ...

随机推荐

  1. 记时,耗时,Stopwatch

    public static string InvokeStopwatch(Action function) { System.Diagnostics.Stopwatch sw = new System ...

  2. Linux 服务器 安装 goflyway

    github官方开发主页:https://github.com/coyove/goflyway goflyway的用途就不说了,你能搜到此文章就说明已经知道了. centos和Ubuntu均可使用,其 ...

  3. springboot + mybatis 的项目,实现简单的CRUD

    以前都是用Springboot+jdbcTemplate实现CRUD 但是趋势是用mybatis,今天稍微修改,创建springboot + mybatis 的项目,实现简单的CRUD  上图是项目的 ...

  4. 基于python Arcface 实现人脸检测和识别

    虹软的人脸识别技术也是很强的,重要的是他免费提供了离线的sdk,还提供了实例,这个是目前几家研究人脸识别的大公司里面少有的.识别能力正常用还是可以的.我这个代码是调用的离线sdk实现的 ``` fro ...

  5. C# 图片人脸识别

    此程序基于 虹软人脸识别进行的开发 前提条件从虹软官网下载获取ArcFace引擎应用开发包,及其对应的激活码(App_id, SDK_key)将获取到的开发包导入到您的应用中 App_id与SDK_k ...

  6. 虹软人脸识别SDK的接入方法

    背景: 虹软的人脸识别还是不错的,在官方注册一个账号,成为开发者,下载SDK的jar包,在开发者中心,找一个demo就可以开始做了,安装里边的逻辑,先看理解代码,然后就可以控制代码,完成自己想要的功能 ...

  7. CC2 条理分明-----AACTP教你谈恋爱

      AACTP是一个神奇的地方,这里可以培养你的自信,培养你的沟通表达能力,培养你的领导管理能力:但是你不知道的是AACTP还可以培养你恋爱的本领.想知道是怎么回事吗?听我给你慢慢说来.我把恋爱分为三 ...

  8. 虚拟机上自动化部署(EFI网络安装)ESXi服务器遇到的问题

    1,虚拟机的CPU为2核或以上. 2,虚拟机选项中不选择: 启用UEFI安全引导.3,引导延迟:设置3000毫秒或以上 4,#GP Exception 13 in world 1:unknown @ ...

  9. Windows 多用户接续设置

    第1步:如果想真正实现多用户接续,请安装角色:remote desktop service.第2步: gpedit.msc,找到“计算机配置”-“管理模板”-“Windows 组件”-“远程桌面服务” ...

  10. Axure 设置条件的操作

    登录的三种场景: 1.用户名为空,只输入密码时,执行三个动作:跳出提示内容(用户名为空).光标定位在用户名的文本框中.清空密码的文本框: 2.密码为空,只输入用户名,执行两个操作:跳出提示内容(密码为 ...