`
喜欢蓝色的我
  • 浏览: 370123 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

ElementTree(元素树)

 
阅读更多

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

分享到:
评论
1 楼 haoningabc 2015-08-11  
           

相关推荐

    elementtree-1.2.6-20050316.tar

    在 ElementTree 中,XML 文档被解析为一棵元素树,其中每个节点都是一个 Element 对象,代表 XML 文档中的一个元素。Element 对象包含属性、文本内容以及子元素。通过这个树形结构,我们可以方便地遍历和操作 XML ...

    9.7. xml.etree.ElementTree — ElementTree XML的接口(翻译).pdf

    这个模块采用了元素树(ElementTree)数据结构来表示XML数据,元素树是包含多个节点的树状结构,每个节点都可能有子节点,就像文件系统一样。 元素树中的每个元素被称为Element,它代表XML树中的一个节点。每个...

    Node.JS XML 解析 node-elementtree.zip

    在 `node-elementtree` 中,XML 文档被解析成一个元素树,每个元素都是一个对象,包含了标签、属性、文本内容以及子元素等信息。你可以通过这个对象模型轻松地遍历、修改或创建 XML 结构。例如,你可以通过元素的 `...

    python使用ElementTree类 处理XML

    ElementTree 模块的主要功能是将 XML 文档解析成树形结构,使得开发者可以方便地访问和操作 XML 元素。ElementTree 模块提供了多种方法来解析 XML 文档,包括 parse() 方法和 fromstring() 方法。 在这篇实例中,...

    element tree

    在本项目中,我们将关注如何使用Vue和Element UI来实现一个具有搜索、增删改以及节点上下移动功能的树形结构(Tree)组件。 首先,让我们深入理解“Tree”组件在前端开发中的作用。树形结构是一种数据表示形式,常...

    python_elementt_xml.zip_python xml_xml解析 python

    `ElementTree`库提供了解析XML文档为元素树(Element Tree)的方法,这使得我们可以遍历和操作XML结构。 1. **解析XML文档**:使用`ElementTree.parse()`或`ET.fromstring()`函数解析XML文件。前者用于读取整个XML...

    js代码-element tree 回显非全选的误区

    总结起来,避免"js代码-element tree 回显非全选的误区"需要理解元素树的数据结构,正确追踪和更新节点状态,处理好复选框的关联性,遵循正确的遍历顺序,并考虑异步操作的影响。通过仔细分析`main.js`中的代码和`...

    Python中使用ElementTree解析XML示例

    ElementTree (元素树)** - **描述**:ElementTree 是一种轻量级的DOM实现方式,具有简洁易用的API。 - **优点**:代码简洁,速度快,内存消耗少。 - **缺点**:功能相比DOM有所限制。 #### ElementTree解析实例 ...

    利用 Python ElementTree 生成 xml的实例

    生成XML文件的基本步骤是构建元素树,然后将其写入文件或转换为字符串。下面是如何创建XML树的示例: 1. **创建根节点**:`Element`函数用于创建XML元素。例如,创建一个名为`root`的根节点: ```python root = ...

    浅谈python的elementtree模块处理中文注意事项

    # 将元素树写入文件 tree = ET.ElementTree(root) tree.write('output.xml', encoding='utf-8', xml_declaration=True) ``` 对于XML的处理,XPath是一种强大的查询语言,可以用来选取XML文档中的节点。`ElementTree...

    好看的树样式tree

    "好看的树样式tree"是一个专为JavaScript设计的可折叠树样式,旨在提供一种美观且用户友好的方式来呈现分组列表。这个解决方案通过简单的封装,使得开发者能够轻松地在自己的项目中应用和扩展。 1. **JavaScript ...

    Python创建xml文件示例

    在Python中创建XML文件是通过使用内置的`xml.etree.ElementTree`模块来实现的。这个模块提供了方便的API来创建、解析和处理XML数据。本示例将详细讲解如何利用`ElementTree`来创建一个XML文件。 首先,导入所需的...

    Element-ui tree组件自定义节点使用方法代码详解

    Tree组件是Element UI中的一个重要组件,它以树形结构展示信息,常用于文件目录展示、组织架构展示等场景。在实际使用中,我们可能需要自定义节点的内容和样式,以满足特定的业务需求。 在提供的内容中,通过实例...

    tabletree4J 树形菜单,无限级,有demo

    树形菜单是一种常见的用户界面元素,常用于网站导航、文件管理器等,通过节点的展开和折叠,清晰地展现层级关系。无限级则意味着tabletree4J可以处理任意深度的层级结构,这对于那些需要展示复杂层级关系的系统来说...

    element-tree:自定义右键菜单等等

    元素树 一个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 ...

    Python如何对XML 解析

    解析后的结果是一个ElementTree对象,可以通过它的根元素(`ElementTree.getroot()`)访问整个XML结构,每个Element代表XML的一个元素,有子元素、属性和文本内容。 总的来说,选择哪种XML解析方法取决于具体的需求...

    纯JS+HTML写的checkBox Tree 级联选中 好用无BUG

    在前端开发中,CheckBox Tree(复选框树)是一种常见的组件,用于展示具有层级关系的数据,并支持用户进行多级选择。这个"纯JS+HTML写的checkBox Tree 级联选中"实例,解决了其他示例中可能存在的BUG,提供了一个...

    python_XML-6-17.rar_python 文件_python xml_python读写xml_python读写xm

    要创建新的XML文件或更新已有的XML文件,我们可以使用`ElementTree`的`Element`类来构建XML树结构,然后用`ElementTree`的`write()`方法将其写入文件。 ```python from xml.etree.ElementTree import Element, ...

    Tree菜单上下移动

    Tree菜单是一种图形用户界面(GUI)元素,它以层级方式展示数据。每个菜单项称为一个节点,包含一个标题和可能的子节点。节点可以展开或折叠,以显示或隐藏其子节点。这种结构有助于用户理解和操作复杂的数据结构,...

Global site tag (gtag.js) - Google Analytics