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。

python解析xml文件elementtree_Python 用ElementTree读取XML文件相关推荐

  1. 【Python入门教程】第72篇 读取CSV文件

    本篇我们介绍如何使用 Python 内置的 csv 模块读取 CSV 文件. CSV 文件 CSV 代表逗号分隔值(comma-separated values),CSV 文件就是使用逗号分隔数据的文 ...

  2. python从云端服务器读数据_audio 读取服务器文件

    PHP面试干货 1.进程和线程 进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性.进程和线程的区别在于: 简而言之,一个程序至少有一个进程,一个进程至少有一 ...

  3. 如何用python处理excel中时间重合_python读取Excel文件中的时间,并计算时间间隔...

    以此Excel文件为例: 1.python读取Excel文件中的时间 import xlrd #读取Excel文件 workbook = xlrd.open_workbook('C:/Users/12 ...

  4. java jdom 读取xml文件_使用Jdom读取XML文件方法

    使用Jdom读取XML文件方法,学习Spring时,我们经常看到很多xml配置文件,Spring通过在配置文件中的配置,使用IOC(控制反转),从而实现代码的灵活性,本篇我就为大家介绍一种解析xml方 ...

  5. python读取所有txt文件_python如何批量读取txt文件

    python批量读取txt文件的方法:首先导入系统模块:然后将文件夹路径更改为需要批量读取的txt文件存放的路径:再调用系统模块得到该文件夹下的所有文件名称:最后遍历文件夹,读取txt文件. 如果文件 ...

  6. python读取大文件的坑_Python读取大文件的坑“与内存占用检测

    python读写文件的api都很简单,一不留神就容易踩"坑".笔者记录一次踩坑历程,并且给了一些总结,希望到大家在使用python的过程之中,能够避免一些可能产生隐患的代码. 1. ...

  7. java取linux本地xml,java-使用apache poi读取.xlsx文件会在Linux机器...

    我有一个读取.xlsx文件并向用户显示内容的应用程序.该应用程序在Windows环境下运行良好. 我将此Web应用程序的.war文件部署在ubuntu服务器上的tomcat6上.我还复制了服务器上的. ...

  8. python读取指定路径txt文件-如何使用pandas读取txt文件中指定的列(有无标题)

    最近在倒腾一个txt文件,因为文件太大,所以给切割成了好几个小的文件,只有第一个文件有标题,从第二个开始就没有标题了. 我的需求是取出指定的列的数据,踩了些坑给研究出来了. import pandas ...

  9. python写入指定路径的文件_python 从shell读取指定文件以及写入指定文件

    python 从shell读取指定文件以及写入指定文件 运行不同的文件每次都要修改脚本,能不能指定输入文件以及输出文件? python abstract_element.py 1.txt 2.txt ...

最新文章

  1. boostrap 鼠标滚轮滑动图片_BootStrap 轮播插件(carousel)支持左右手势滑动的方法(三种)...
  2. dNet项目数据访问层代码总结
  3. Understand分析Kinect SDK 1.7自带例子(C++)图集一
  4. python 读写函数
  5. 各种模板(数学数论字符串)
  6. 测试:脱离VS2010使用自动化测试时出现 6DA215C2-D80D-42F2-A514-B44A16DCBAAA 错误
  7. 动态分配方式计算学生成绩
  8. 循环结构c语言乘电梯,C语言循环结构练习题.doc
  9. spdy_buffer
  10. 用opencv压缩图片
  11. 免费云笔记软件哪个好?
  12. 常用正则表达式大全(包含港澳台身份证等校验)
  13. java二进制编辑器_Java Hex Editor免费版-十六进制编辑器下载 v2.0 免费版 - 安下载...
  14. eclipes常用快捷键
  15. 业务数据分析-常见业务指标
  16. python将数据做直方图_用python 制作直方图
  17. 使用Charles不能抓取到Ios手机的数据包
  18. 通过西部世界来盘点近来人工智能研究的发展
  19. 2022-08-04 Brighthouse: An Analytic DataWarehouse for Ad-hoc Queries
  20. 基于java的校园网站管理系统

热门文章

  1. impala中的时间戳 TIMESTAMP类型用法(转载网上电子书)(不是我原创)
  2. 7.node.js的3DES 加密和解密的方法封装
  3. 4am永远 鼠标按键设置_《王者荣耀》键鼠按键映射教程
  4. android 后台自动拍照,Android实现后台开启服务默默拍照功能
  5. 基于OpenCV的图片和视频人脸识别
  6. js 获取元素位置和大小_js 位置_Js宽度高度(详解)
  7. ROS配置SLAM环境
  8. java程序如何访问成员变量,java如何访问成员变量
  9. Python OpenCV 之图像金字塔,高斯金字塔与拉普拉斯金字塔
  10. Fragment的简单使用二