python xml etree_python xml.etree解析xml

config.xml

<?xml version="1.0" encoding="UTF-8"?>

linux

30

windows

20

1 ,解析出xml文件的根元素

from xml.etree import ElementTree as ET

tree=ET.parse('config.xml')

root=tree.getroot()

或者 (从字符串中解析)

root = ET.fromstring(country_data_as_string)

tree=ET.parse('config.xml') #tree为ElementTree 类型

root=tree.getroot()或root = ET.fromstring(country_data_as_string) #root为Element类型

2 以root为根元素开始解析:主要使用Element的方法

Element.iter()遍历他所有的后代元素(包括其自己)。

nodes = root.iter()

for i in nodes:

print i.tag

结果:

employees

employee

name

age

employee

name

age

Element.iter("employee") :返回所有的employee元素,通常用于找到employee元素的attrib或者text

nodes = root.iter('name')

for i in nodes:

print i.text

结果:

linux

windows

):查询第一个标签名为tagname的元素

for e in root.findall('employee'):

name = e.find('name').text

lang = e.find('name').get('lang')

print name,lang

结果:

linux en

windows None

Element Objects:

tag :元素标签名

text:元素标签的文本值,即两个变签名之间的文本值。

tail:该元素后一个标签名到下一个标签名之间的文本部分

attrib:返回一个字典结构,属性名:属性值 {'lang': 'en', 'price': '21'}

get(key,default=None):返回该元素名为key的属性值,如果该属性为找到,则返回default(None)。

items():返回该元素所有的(属性,属性值),返回一个列表,列表里每一项为(属性,属性值)。[('lang', 'en'), ('price', '21')]

keys():返回一个列表,每一项为该元素的属性名 。['lang', 'price']

findall(match):match 为tag name 或 xpath。通过tag name 或者xpath去查找符合的所有子元素,返回一个列表,包含按文档顺序的子元素对象。子元素不包括孙元素一下的后代元素

find(match):通过tag name 或者xpath去查找符合的第一个子元素,返回一个元素对象或者None。

findtext(match,default=None):match 为tag name 或 xpath。查找一个符合match的资源的text。返回找到的文本内容或者没找到返回default

iter(tag=None) :Creates a treeiteratorwith the current element as the root。The iterator可以迭代该元素和所有的后代元素(按文档出现的先后顺序)。若果tag不是None或者‘*’,返回所有tag=tag的元素对象。

iterfind(match):Finds all matching subelements, by tag name or path. Returns an iterable yielding all matching elements in document order。返回值为不懂,一般也不用。

itertext():Creates a text iterator. The iterator loops over this element and all subelements, in document order, and returns all inner text。生成一个文本迭代器,他按文档出现顺序遍历自己和所有的子元素,返回所有的文本值,包含空格和换行。

text = root.itertext()

for i in text:

print i

makeelement(tag,attrib)

remove(subelement):Removessubelementfrom the element。

clear() :清除该元素的所有子元素和属性,设定text和attrib的值为None。

insert(index, element):在该元素子元素的指定的位置插入一个子元素。

set(key, value) :Set the attribute key on the element to value.把元素的key属性设置为value。

append(subelement):Adds the element subelement to the end of this elements internal list of subelements

extend(subelements):Appends subelements from a sequence object with zero or more elements. Raises AssertionError if a subelement is not a valid object.

element = root.find('foo')

if not element: # careful!

print "element not found, or element has no subelements"

if element is None:

print "element not found"

xml.etree.ElementTree.fromstring(text) :从一个字符串中获取ElementTree的跟元素,返回值为Element。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/431617.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

http协议报文体_HTTP协议扫盲(七)请求报文之 GET、POST-FORM 和 POST-FILE

ORACLE临时表空间总结临时表空间概念 临时表空间用来管理数据库排序操作以及用于存储临时表.中间排序结果等临时对象,当ORACLE里需要用到SORT的时候,并且当PGA中sort_area_size大小不够时,将会把数据放入 ...web自学网站coursera 网站很多新的技术,都是大牛和牛大学的,和外国新…

Winform开发之ADO.NET对象Connection、Command、DataReader、DataAdapter、DataSet和DataTable简介...

ADO.NET技术主要包括Connection、Command、DataReader、DataAdapter、DataSet和DataTable等6个对象&#xff0c;下面对这6个对象进行简单的介绍&#xff1a;&#xff08;1&#xff09;Connection对象的主要功能是与数据库进行连接&#xff08;事物处理也使用此对象&#xff09;…

python电子英汉词典显示_python网页抓取之英汉字典

linux的字典本人实在用起来不舒服&#xff08;stardict挺不错的&#xff0c;但是界面好看些&#xff0c;功能简单易用就好了&#xff09; &#xff0c;在线翻译又得打开庞大的浏览器....就打算自己写个&#xff0c;但是时间有限&#xff0c;为了简单&#xff0c; 还是用python抓…

清空缓存的命令_超详细的mysql数据库查询缓存原理解析、涉及命令、流程分析等...

概述mysql查询缓存在数据库优化可以起到很大的作用&#xff0c;今天主要针对这一块做一个总结&#xff0c;下面一起来看看吧~一、缓存条件&#xff0c;原理MySQL Query Cache是用来缓存我们所执行的SELECT语句以及该语句的结果集&#xff0c;MySql在实现Query Cache的具体技术细…

python与tensorflow的关系_python – 在TensorFlow,Session.run()和Tensor.eval()之间有什么区别?...

如果你有Tensor t&#xff0c;调用 t.eval()相当于调用tf.get_default_session()。run(t)。 您可以将会话设置为默认值&#xff0c;如下所示&#xff1a; t tf.constant(42.0) sess tf.Session() with sess.as_default(): # or with sess: to close on exit assert sess is t…

和lua的效率对比测试_Unity游戏开发Lua更新运行时代码!

最近沉迷lua脚本热更&#xff0c;想说这个可以提高多少菜鸡的调试效率&#xff0c;找了网上好多文章&#xff0c;但是都不行&#xff0c;尝试了很久&#xff0c;并且自己测试和学习&#xff0c;写了一遍&#xff0c;勉强能热更了。下面记录一下热更Lua的过程。一、用来卸载表格…

nodejs cluster ip hash_redis集群架构了解一下?一致性hash了解吗?

在前几年&#xff0c;redis 如果要搞几个节点&#xff0c;每个节点存储一部分的数据&#xff0c;得借助一些中间件来实现&#xff0c;比如说有 codis&#xff0c;或者 twemproxy&#xff0c;都有。有一些 redis 中间件&#xff0c;你读写 redis 中间件&#xff0c;redis 中间件…

硬盘主分区和拓展分区

主分区,也称为主磁盘分区,和扩展分区、逻辑分区一样,是一种分区类型。主分区中不能再划分其他类型的分区,因此每个主分区都相当于一个逻辑磁盘(在这一点上主分区和逻辑分区很相似,但主分区是直接在硬盘上划分的,逻辑分区则必须建立于扩展分区中)。 1. 一个硬盘可以有1到3个主分…

python如何比较大小_python列表如何比较大小

python列表如何比较大小 发布时间:2020-09-22 13:58:58 来源:亿速云 阅读:59 作者:小新 这篇文章给大家分享的是有关python列表如何比较大小的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。 Python中可以使用cmp()函数比较两个列表的大小。 c…

python 连接oracle_常用的Python库,给大家分享一下!

Tkinter———— Python默认的图形界面接口。Tkinter是一个和Tk接口的Python模块&#xff0c;Tkinter库提供了对Tk API的接口&#xff0c;它属于Tcl/Tk的GUI工具组。Tcl/Tk是由John Ousterhout发展的书写和图形设备。Tcl(工具命令语言)是个宏语言&#xff0c;用于简化shell下复…

js 获取某年的某天是第几周

/**2 * 判断年份是否为润年3 *4 * param {Number} year5 */6 function isLeapYear(year) {7 return (year % 400 0) || (year % 4 0 && year % 100 ! 0);8 }9 /**10 * 获取某一年份的某一月份的天数11 *12 * param {Number} year13 * param {Number} month14 *…

python 前端学习_python学习之路7 前端学习3

1.页面布局PosTion :fixedTitle.left{float:left;}.right{float:right;}.head{height:58px;background-color:#3c3c3c;}.head .fontsquarl{width:120px;height:58px;background-color:#F22E00;line-height:58px;}.head .logosuqarl{width:120px;height:58px;background-color:#…

2.5d generator 2.0_ps插件【2.5D插件】

近一两年来创意插画在视觉上的使用越来越多&#xff0c;设计师们都愈加倾向于使用漂亮的插画和产品结合让自己的设计脱颖而出。在最近这段时间新涌现的设计作品当中&#xff0c;强烈的视觉冲击力和产品结合的展现是它们共通的特点。那么2.5D插画也是作为近一两年的发展趋势&…

(转)女生应该找一个玩ACM的男生

1、强烈的事业心 将来&#xff0c;他也一定会有自己热爱的事业。而且&#xff0c;男人最性感的时刻之一&#xff0c;就是他专心致志做事的时候。所以&#xff0c;找一个机会在他全神贯注玩ACM的时候&#xff0c;从侧面好好观察他&#xff0c;你就会发现我说的话没错。 2、永不放…

人工神经网络_制作属于自己的人工神经网络

在本文中&#xff0c;我已经实现了具有Dropout和L2正则化的人工神经网络的完全向量化代码。在本文中&#xff0c;我实现了一个在多个数据集上测试的人工神经网络的完全向量化python代码。此外&#xff0c;并对Dropout和L2正则化技术进行了实现和详细说明。强烈建议通过人工神经…

decorators 参数_Python Decorators(二):Decorator参数

Python Decorators II: Decorator ArgumentsOctober 19, 2008(本文是(Python3之模式和用法)一书的章节节选第二部分&#xff0c;点击阅读第一部分)回顾&#xff1a;不含参数的decorators在前文中&#xff0c;我介绍了如何使用不含参数的decorators&#xff0c;并使用类来实现。…

[leedcode 52] N-Queens II

Follow up for N-Queens problem. Now, instead outputting board configurations, return the total number of distinct solutions. public class Solution {//本题类似于N-Queens&#xff0c;这个更简单一些&#xff0c;只需要求出解法的个数即可&#xff0c;因此没有了prin…

python文本风格_以写代学:python 良好的代码风格实例解析

将用户输入的数据存入到一个文件当中去&#xff0c;这个文件必须是原来不存在的 &#xff08;1&#xff09;起始行 &#xff08;2&#xff09;模块文档字符串 &#xff08;3&#xff09;导入模块 &#xff08;4&#xff09;全局变量声明 &#xff08;5&#xff09;类定义 &…

三角形和矩形傅里叶变换_信号与系统:第三章傅立叶变换2.ppt

第三节 连续时间周期信号的频谱分析 一)周期矩形脉冲的频谱 三、 周期信号的有效频帶宽度(简称带宽) 四、 周期信号的功率谱 第四节、 连续时间非周期信号的频谱 一、 从傅立叶级数到傅里叶变换 三、一些典型信号的 频谱函数F(jw) (即傅里叶变换) (2)单边指数信号的傅里叶变换 …

Sock基础

z1 客户端 //客户端 通信套接字 //1.创建监听套接字 使用 ip4协议&#xff0c;流式传输&#xff0c;TCP连接 Socket sokMsg new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); //2.获取要连接的服务端 节点 //2.1获取网络节点对象 IPAddress add…