python解析xml文件elementtree_Python 用ElementTree读取XML文件

python有三种方法解析XML,SAX,DOM,以及ElementTree

###1.SAX (simple API for XML )

pyhton 标准库包含SAX解析器,SAX是一种典型的极为快速的工具,在解析XML时,不会占用大量内存。

但是这是基于回调机制的,因此在某些数据中,它会调用某些方法进行传递。这意味着必须为数据指定句柄,

以维持自己的状态,这是非常困难的。

###2.DOM(Document Object Model)

与SAX比较,DOM典型的缺点是比较慢,消耗更多的内存,因为DOM会将整个XML数读入内存中,并为树

中的第一个节点建立一个对象。使用DOM的好处是你不需要对状态进行追踪,因为每一个节点都知道谁是它的

父节点,谁是子节点。但是DOM用起来有些麻烦。

###3.ElementTree(元素树)

ElementTree就像一个轻量级的DOM,具有方便友好的API。代码可用性好,速度快,消耗内存少,这里主要

介绍ElementTree。

以上是从网络上摘抄下来的,根据这个描述,我直接使用第三种方法。分割线一下是我的实现

====================================================

我的XML文件设计:

 (Project)

  (Project)

红色部分是我为了写这个日志,而添加的说明。

我想要做的事情:根据ProjectName得到每个SiteCollection和HostName。

代码实现:

from xml.etree import ElementTree

def extractXMLGetBaseURL(XMLfile, ProjectName):

root = ElementTree.parse(XMLfile).getroot()

MyProjectName = root.find(ProjectName)

server = MyProjectName.find('ServerConfig')

print("HostName: " + server.get("HostName"))

print("SiteCollection: " + server.get("SiteCollection"))

extractXMLGetBaseURL(".\TestCase.xml", "BasicEnforcement")

运行结果:

HostName: pf1-w08-sps08

SiteCollection: BasicEnforcement

==Done

其他说明:

1. ElementTree.parse(FilePath)解析文件。

2. 解析之后用.getroot()获取root节点。

3. root.find()括号中可以直接带上节点的名字。如server=root.find("ServerConfig")

4. XXX.get()括号中可以直接写上attribute。如server.get("HostName")

5. XXX.attrib(),会返回所有attribute。

6. XXX.getchildren()会返回所有的children。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值