ElementTree就像一个轻量级的DOM,具有方便友好的API。代码可用性好,速度快,消耗内存少,这里主要
介绍ElementTree。
下面是例子:(这是一个jmeter执行结果jtl文件)
kmtest071009.xm<?xml version="1.0" encoding="UTF-8"?>
<testResults version="1.2">
<httpSample t="636" lt="636" ts="1437376387035" s="true" lb="HTTP??" rc="200" rm="OK" tn="??? 1-81" dt="text" by="288"/>
<httpSample t="1184" lt="1184" ts="1437376386488" s="true" lb="HTTP??" rc="200" rm="OK" tn="??? 1-46" dt="text" by="288"/>
<httpSample t="964" lt="964" ts="1437376386708" s="true" lb="HTTP??" rc="200" rm="OK" tn="??? 1-8" dt="text" by="288"/>
<httpSample t="648" lt="648" ts="1437376387024" s="true" lb="HTTP??" rc="200" rm="OK" tn="??? 1-80" dt="text" by="288"/>
<httpSample t="701" lt="701" ts="1437376386971" s="true" lb="HTTP??" rc="200" rm="OK" tn="??? 1-73" dt="text" by="288"/>
<httpSample t="983" lt="983" ts="1437376386689" s="true" lb="HTTP??" rc="200" rm="OK" tn="??? 1-16" dt="text" by="288"/>
<httpSample t="951" lt="951" ts="1437376386721" s="true" lb="HTTP??" rc="200" rm="OK" tn="??? 1-20" dt="text" by="288"/>
<httpSample t="955" lt="955" ts="1437376386717" s="true" lb="HTTP??" rc="200" rm="OK" tn="??? 1-63" dt="text" by="288"/>
</testResults>
1.加载xml文件
加载XML文件共有2种方法,一是加载指定字符串,二是加载指定文件
2.获取element的方法
a) 通过getiterator
b) 过 getchildren
c) find方法
d) findall方法
python事例
#!/usr/bin/evn python
#coding:utf-8
try:
import xml.etree.cElementTree as ET
except ImportError:
import xml.etree.ElementTree as ET
import sys
try:
tree = ET.parse(r'kmtest071009.xml')
#tree = ET.parse(r'country.xml')
#root = ET.fromstring(country_string)
#tree = ET.parse(r'test.xml')
root = tree.getroot()
print root
print root.tag
print root.attrib
print "-----------"
#per=ET.parse(r'test.xml')
p=tree.findall('httpSample')
for x in p:
print "x:", x.attrib
print "new------"
#能取到
<httpSample t="955" lt="955" ts="1437376386717" s="true" lb="HTTP??" rc="200" rm="OK" tn="??? 1-63" dt="text" by="288"/> 这个中的值
for oneper in p:
#for child in oneper.getchildren():
#print child.tag,':',child.text
print 't:',oneper.get('t')
print 'tl:',oneper.get('tl')
print 'ts:',oneper.get('ts')
print 's:',oneper.get('s')
print 'lb:',oneper.get('lb')
print 'rc:',oneper.get('rc')
print 'rm:',oneper.get('rm')
print 'tn:',oneper.get('tn')
print 'dt:',oneper.get('dt')
print 'by',oneper.get('by')
print '############'
#children = httpSample[0].getchildren()
#print children
#print "tag:",children[0].tag
#print "text:",children[0][1].text
#print "-----------"
#print root[0][0].text
print "find"
children = root.find("httpSample")
print children
print "attrib:",children.attrib
print "tag:",children.tag
print "text:",children.text
#print "-------------1"
#print "attrib1:",children[0].attrib
print "--------------1"
#children = root.findall("httpSample/t")[0]
#print children
#print "attrib:",children[1].attrib
#print "tag:",children[1].tag
#print "text:",children[1].text
p = tree.findall("httpSample")
for x in p:
print "x.attrib:",x.attrib
#print "x.attrib.text:",x.attrib.text
#print "lt:",p.get('lt')
except Exception, e:
print "Error:cannot parse file:kmtest071009.xml."
sys.exit(1)
#print root.tag, "---", root.attrib
#for child in root:
#print child.tag, "---", child.attrib
#print child.attrib[0]
print "11111111"
#childs = item.getchildren()
#for subItem in childs:
#:print subItem.get("ts")
显示运行结果:
new------
t: 636
tl: None
ts: 1437376387035
s: true
lb: HTTP??
rc: 200
rm: OK
tn: ??? 1-81
dt: text
by 288
############
t: 1184
tl: None
ts: 1437376386488
s: true
lb: HTTP??
rc: 200
rm: OK
tn: ??? 1-46
dt: text
by 288
############
t: 964
tl: None
ts: 1437376386708
s: true
lb: HTTP??
rc: 200
rm: OK
tn: ??? 1-8
dt: text
by 288
############
t: 648
tl: None
ts: 1437376387024
s: true
lb: HTTP??
rc: 200
rm: OK
tn: ??? 1-80
dt: text
by 288
############
t: 701
tl: None
ts: 1437376386971
s: true
lb: HTTP??
rc: 200
rm: OK
tn: ??? 1-73
dt: text
by 288
############
t: 983
tl: None
ts: 1437376386689
s: true
lb: HTTP??
rc: 200
rm: OK
tn: ??? 1-16
dt: text
by 288
############
t: 951
tl: None
ts: 1437376386721
s: true
lb: HTTP??
rc: 200
rm: OK
tn: ??? 1-20
dt: text
by 288
############
t: 955
tl: None
ts: 1437376386717
s: true
lb: HTTP??
rc: 200
rm: OK
tn: ??? 1-63
dt: text
by 288
############
find
相关推荐
在 ElementTree 中,XML 文档被解析为一棵元素树,其中每个节点都是一个 Element 对象,代表 XML 文档中的一个元素。Element 对象包含属性、文本内容以及子元素。通过这个树形结构,我们可以方便地遍历和操作 XML ...
这个模块采用了元素树(ElementTree)数据结构来表示XML数据,元素树是包含多个节点的树状结构,每个节点都可能有子节点,就像文件系统一样。 元素树中的每个元素被称为Element,它代表XML树中的一个节点。每个...
在 `node-elementtree` 中,XML 文档被解析成一个元素树,每个元素都是一个对象,包含了标签、属性、文本内容以及子元素等信息。你可以通过这个对象模型轻松地遍历、修改或创建 XML 结构。例如,你可以通过元素的 `...
ElementTree 模块的主要功能是将 XML 文档解析成树形结构,使得开发者可以方便地访问和操作 XML 元素。ElementTree 模块提供了多种方法来解析 XML 文档,包括 parse() 方法和 fromstring() 方法。 在这篇实例中,...
在本项目中,我们将关注如何使用Vue和Element UI来实现一个具有搜索、增删改以及节点上下移动功能的树形结构(Tree)组件。 首先,让我们深入理解“Tree”组件在前端开发中的作用。树形结构是一种数据表示形式,常...
`ElementTree`库提供了解析XML文档为元素树(Element Tree)的方法,这使得我们可以遍历和操作XML结构。 1. **解析XML文档**:使用`ElementTree.parse()`或`ET.fromstring()`函数解析XML文件。前者用于读取整个XML...
总结起来,避免"js代码-element tree 回显非全选的误区"需要理解元素树的数据结构,正确追踪和更新节点状态,处理好复选框的关联性,遵循正确的遍历顺序,并考虑异步操作的影响。通过仔细分析`main.js`中的代码和`...
ElementTree (元素树)** - **描述**:ElementTree 是一种轻量级的DOM实现方式,具有简洁易用的API。 - **优点**:代码简洁,速度快,内存消耗少。 - **缺点**:功能相比DOM有所限制。 #### ElementTree解析实例 ...
生成XML文件的基本步骤是构建元素树,然后将其写入文件或转换为字符串。下面是如何创建XML树的示例: 1. **创建根节点**:`Element`函数用于创建XML元素。例如,创建一个名为`root`的根节点: ```python root = ...
# 将元素树写入文件 tree = ET.ElementTree(root) tree.write('output.xml', encoding='utf-8', xml_declaration=True) ``` 对于XML的处理,XPath是一种强大的查询语言,可以用来选取XML文档中的节点。`ElementTree...
"好看的树样式tree"是一个专为JavaScript设计的可折叠树样式,旨在提供一种美观且用户友好的方式来呈现分组列表。这个解决方案通过简单的封装,使得开发者能够轻松地在自己的项目中应用和扩展。 1. **JavaScript ...
在Python中创建XML文件是通过使用内置的`xml.etree.ElementTree`模块来实现的。这个模块提供了方便的API来创建、解析和处理XML数据。本示例将详细讲解如何利用`ElementTree`来创建一个XML文件。 首先,导入所需的...
Tree组件是Element UI中的一个重要组件,它以树形结构展示信息,常用于文件目录展示、组织架构展示等场景。在实际使用中,我们可能需要自定义节点的内容和样式,以满足特定的业务需求。 在提供的内容中,通过实例...
树形菜单是一种常见的用户界面元素,常用于网站导航、文件管理器等,通过节点的展开和折叠,清晰地展现层级关系。无限级则意味着tabletree4J可以处理任意深度的层级结构,这对于那些需要展示复杂层级关系的系统来说...
元素树 一个Vue.js项目 效果 构建设置 # install dependencies npm install # serve with hot reload at localhost:8080 npm run dev # build for production with minification npm run build # build for ...
解析后的结果是一个ElementTree对象,可以通过它的根元素(`ElementTree.getroot()`)访问整个XML结构,每个Element代表XML的一个元素,有子元素、属性和文本内容。 总的来说,选择哪种XML解析方法取决于具体的需求...
在前端开发中,CheckBox Tree(复选框树)是一种常见的组件,用于展示具有层级关系的数据,并支持用户进行多级选择。这个"纯JS+HTML写的checkBox Tree 级联选中"实例,解决了其他示例中可能存在的BUG,提供了一个...
要创建新的XML文件或更新已有的XML文件,我们可以使用`ElementTree`的`Element`类来构建XML树结构,然后用`ElementTree`的`write()`方法将其写入文件。 ```python from xml.etree.ElementTree import Element, ...
Tree菜单是一种图形用户界面(GUI)元素,它以层级方式展示数据。每个菜单项称为一个节点,包含一个标题和可能的子节点。节点可以展开或折叠,以显示或隐藏其子节点。这种结构有助于用户理解和操作复杂的数据结构,...