1.引入库

需要用到3个类,ElementTree,Element以及建立子类的包装类SubElement

from xml.etree.ElementTree import ElementTree

from xml.etree.ElementTree import Element

from xml.etree.ElementTree import SubElement as SE

2.读入并解析

tree = ElementTree(file=xmlfile)

root = tree.getroot()

读入后,tree是ElementTree的类型,获取xml根结点使用getroot()方法;

XML示例文件:

代码如下:

3.获取儿子结点

查找Element的所有子结点:

代码如下:

AArry = item.findall('a')

也可使用getchildren():

childs =  item.getchildren()

for subItem in childs:

print subItem.get('id')

4.插入儿子结点

方法一:

代码如下:

item = Element("item", {'sid' : '1713', 'name' : 'ityouhui'})

root.append(item)

方法二:

代码如下:

SE(root,'item',{'sid':'1713','name':'ityouhui'})

法一的好处是插入之后可以对item继续操作。法二是写法上简单,其中SE就是SubElement,在引入处做了声明;

5.操作属性

获取Element的某个属性值(eg:获取item的 name)

代码如下:

print root.find('item/name').text

print item.get('name')

获取Element所有属性

代码如下:

print item.items()       # [('sid', '1712'), ('name', '大CC')]

print item.attrib        # {'sid': '1712', 'name': '大CC'}

6.美化XML

在写入之前,传入root调用此函数,写入的XML文件格式整齐美观:

代码如下:

indent(root)

book.write(xmlfile,'utf-8')

代码如下:

## Get pretty look

def indent( elem, level=0):

i = "n" + level*"  "

if len(elem):

if not elem.text or not elem.text.strip():

elem.text = i + "  "

for e in elem:

indent(e, level+1)

if not e.tail or not e.tail.strip():

e.tail = i

if level and (not elem.tail or not elem.tail.strip()):

elem.tail = i

return elem

python elementtree属性_python通过ElementTree操作XML获取结点读取属性美化XML相关推荐

  1. 和python高级知识_Python中的5个高阶概念属性的知识点!你要了解明白哦!

    在现代编程世界中,面向对象编程(OOP)语言在改变软件开发中的设计和实现模式方面发挥了进化作用.作为OOP家族的重要成员,Python在过去10年左右逐渐流行起来.与其他OOP语言一样,Python围 ...

  2. python获取数据库列名_python sqlite3 查询操作及获取对应查询结果的列名

    记录查询操作及获取查询结果列字段的方法 1.sqlite3 中获取所有表名及各表字段名的操作方法 SQLite 数据库中有一个特殊的表叫 sqlite_master,sqlite_master 的结构 ...

  3. python解析xml+得到pascal voc xml格式用于目标检测+美化xml

    1.python解析xml img_path='./data/001.tif'xml_path='./xml/001.xml'img=cv2.imread(img_path)# cv2.imshow( ...

  4. html元素自己属性代码,jQuery如何操作HTML的元素和属性?(代码详解例)

    本篇文章给大家带来的内容是介绍jQuery如何操作HTML的元素和属性?(代码详解例),让大家了解jQuery操作元素和属性的方法.有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助. 1 ...

  5. log4j2.xml 获取当前系统属性

    官方文档: Log4j – Apache Log4j 2 获取微服务名称 Log4j Spring Boot Integration – Log4j Spring Boot Support <p ...

  6. java entity公共属性_java – 如何从Entity Manager获取jpa数据源属性

    大家好 我想知道是否可以通过实体管理器获取数据库连接属性. 我的persistence.xml看起来像这样 DatasourceForTestSystem some.package.and.some. ...

  7. 静态变量读取属性文件_一种通过变量插值读取属性的方法

    静态变量读取属性文件 最近,我尝试在应用程序服务器中定义和读取全局属性. 在应用程序服务器中配置的此类属性的好处–可以在此服务器上部署的所有Web应用程序之间共享该属性. 每个部署的应用程序都可以读取 ...

  8. jq ajax xml,jQuery+ajax读取并解析XML文件的方法

    本文实例讲述了jQuery+ajax读取并解析XML文件的方法.分享给大家供大家参考,具体如下: ajax.xml: zhangsan 1 lisi 2 demo.html: /p> " ...

  9. php类3个属性是哪3种,PHP获取类私有属性的3种方法

    今天在推上看到一条获取php类私有属性的推文,感觉很有意思: 顺着推文联想,还有其他方式吗?经过自己的测试及网上答案,总结出三种方法: 1. 反射 反射可以获取类的详细信息,要获取私有属性的值,只需将 ...

  10. html 读取本地xml文件,JS读取本地的XML文件

    要想让JS读取本地的XML代码,得具备这样的条件,一般情况下,需要一个JS文件,一个XML文件,最后这两个文件就放在相同的路径下,这样方便调用. 一.XML文件代码示例 大众计算机学习网 www.dz ...

最新文章

  1. AOP的研究认识了MVC
  2. linux服务器调用端口超时,Linux服务器可以ping,但是telnet端口超时,网站wget超时,访问超时的解决办法...
  3. C语言面试基础知识整理
  4. tessorflow实战
  5. asp.net 字符串过滤
  6. mysql my.ini位置错误_解决mysql导入数据量很大导致失败及查找my.ini 位置(my.ini)在哪...
  7. Algorithms Part 1-Question 2-QuickSort-快速排序算法
  8. 使用Decimal.js解决前端计算金钱失真问题
  9. by mybatis 自定义order_MyBatis动态SQL实现ORDER BY和LIMIT的控制?
  10. 微信小程序模板平台_小程序模板免费使用_小程序界面模板
  11. ubuntu 下android设备找到fastboot驱动
  12. OpenCV+Python学习笔记 : 图像灰度化处理
  13. built a JNCIS LAB系列:Chapter 7 MPLS
  14. Error starting userland proxy: listen tcp 0.0.0.0:xxx端口: bind: address already in use解决办法
  15. hdwiki的php架构,hdwiki框架结构简要说明
  16. Robot Framework(3)——RIDE工具详解
  17. vue+element-ui实现表格编辑
  18. matlab建立rbf网络,大家看一下,这组数据Matlab如何构建RBF神经网络!!!!
  19. 【许晓笛】49行代码就能发币?而且EOS连例子都给你了
  20. ip r route -n

热门文章

  1. 获取时间差(类似微信朋友圈消息的时间显示)
  2. 软件工程师会了这6种测试工具,还用996工作制度吗?
  3. Linux网络的IPv6应用(2)(转)
  4. shell编程——Shell批量管理服务器
  5. 中兴V899D ROOT教程
  6. CNN感性认识(一)——BP神经网络
  7. 计算机名额满了能报其他学校吗,第一志愿没有被录取,但第二志愿的学校招生名额已满。我该怎么办...
  8. hdu4530小Q系列故事——大笨钟
  9. linux从接通电源到操作系统启动,Linux详细启动过程
  10. 【C# 教程系列第 23 篇】什么是Json?