• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >python > Python 解析XML文件

Python 解析XML文件

作者: 字体:[增加 减小] 来源:互联网

通过本文主要向大家介绍了python读取xml文件,python生成xml文件,python 修改xml文件,python处理xml文件,python写xml文件等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

1. 背景说明?

  解析 xml 格式的文件有多种方法, 这里只介绍使用 xml.etree.ElementTree 这种解析方式.

2. ElementTree 和 cElementTree 的区别?

  ElementTree在 Python 标准库中有两种实现。一种是纯 Python 实现例如 xml.etree.ElementTree ,另外一种是速度快一点的 xml.etree.cElementTree 。你要记住: 尽量使用 C 语言实现的那种,因为它速度更快,而且消耗的内存更少。

  注意: 开发的时候为了调试方便, 可以使用 ElementTree .

3. 解析方式?

  导入包:  python3.3之后ElementTree模块会自动寻找可用的C库来加快速度

try:
    import xml.etree.cElementTree as et
except ImportError:
    import xml.etree.ElementTree as et

 

  3.1 方式一: 读取 xml 文件成 xml 对象

# 从某文件解析成 xml 对象:
tree_obj = et.parse( "city_info.xml" )

# 获取根节点元素
root = tree_obj.getroot()

  3.2 方式二: 读取 xml 字符串成 xml 对象

复制代码

# 注意: xml 格式开头的 <?xml version......  一定不能有空格, 否则报错!!!
xml_text = """<?xml version="1.0" encoding="UTF-8"?>
<struts>
    <action name="login" class="com.coderising.litestruts.LoginAction">
        <result name="success">homepage.jsp</result>
        <result name="fail">showLogin.jsp</result>
    </action>
    <action name="logout" class="com.coderising.litestruts.LogoutAction">
       <result name="success">welcome.jsp</result>
       <result name="error">error.jsp</result>
    </action>
</struts>
"""

# 获取很节点元素
root = et.fromstring(xml_text)

复制代码

  3.3 解析各元素获取信息

  获取属性值和文本信息

复制代码

# xml_text, 即上面的xml字符串

root = et.fromstring(xml_text)
for action in root.iter("action"):
    act_name = action.attrib.get("name")    # 获取属性值
    class_info = action.get("class")        # 同样也是获取标签属性值, 上面的简写方式
    for result in action.iter("result"):
        res_name = result.get("name")
        res_text = result.text              # 获取标签文本信息

复制代码

  find 方法 + xpath 解析式 (注意: xpath解析式不支持绝对路径, 仅支持相对路径, 比如 "./")

    find(): 查找满足条件的第一个标签

    findall(): 查找满足条件的所有标签

复制代码

root = et.fromstring(xml_text)

# find() 查找第一个标签
action = root.find(".//action/result[2]")
print(action.get("name"))        # fail
print(action.text)               # result 1.2 result 1.2 result 1.2 result 1.2


# findall() 查找所有标签
actions = root.findall(".//action/result")
for action in actions:
    ac_name = action.get("name")
    ac_text = action.text

复制代码

您可能想查找下面的文章:

  • python处理xml文件的方法小结
  • python处理xml文件的方法小结
  • 使用Python生成XML的方法实例
  • Python存取XML的常见方法实例分析
  • Python处理XML格式数据的方法详解
  • python解析基于xml格式的日志文件
  • Python实现简单的多任务mysql转xml的方法
  • 深入解读Python解析XML的几种方式
  • 深入解读Python解析XML的几种方式
  • Python实现将xml导入至excel

相关文章

  • Python下线程之间的共享和释放示例
  • Mac OS X10.9安装的Python2.7升级Python3.3步骤详解
  • Python计算已经过去多少个周末的方法
  • python操作CouchDB的方法
  • 用python写asp详细讲解
  • Python的Django框架中消息通知的计数器实现教程
  • python网络编程学习笔记(五):socket的一些补充
  • Python切换pip安装源的方法详解
  • 用Python给文本创立向量空间模型的教程
  • Python中的os.path路径模块中的操作方法总结

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • python实现计算倒数的方法
    • Python的Flask站点中集成xhEditor文本编辑器的教程
    • python中对list去重的多种方法
    • Python中无限元素列表的实现方法
    • Django与遗留的数据库整合的方法指南
    • Python函数中*args和**kwargs来传递变长参数的用法
    • 详解Python网络爬虫功能的基本写法
    • Flask的图形化管理界面搭建框架Flask-Admin的使用教程
    • python发送HTTP请求的方法小结
    • Django框架下在URLconf中指定视图缓存的方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有