python怎么读取xml

发布时间 - 2026-01-09 00:00:00    点击率:
Python读取XML主要用xml.etree.ElementTree:ET.parse()解析文件获ElementTree对象再.getroot()得根元素;ET.fromstring()直接解析字符串得根元素;常用root.find()、findall()、.text、.get()等操作提取数据。

Python 读取 XML 主要靠内置的 xml.etree.ElementTree(简称 ET),它轻量、易用、无需额外安装,适合大多数日常解析需求。

用 ElementTree 解析 XML 文件

这是最常用的方式,适合读取本地 .xml 文件:

  • ET.parse("文件路径") 加载并解析整个文档,返回一个 ElementTree 对象
  • 调用 .getroot() 获取根元素(Element 类型),后续所有查找、遍历都从它开始
  • 例如:tree = ET.parse("data.xml"); root = tree.getroot()

解析 XML 字符串(非文件)

如果 XML 内容来自网络响应、数据库或变量字符串,用 ET.fromstring()

  • 直接传入字符串,返回根元素对象,跳过创建 tree 的步骤
  • 例如:xml_str = "Alice"; root = ET.fromstring(xml_str)

常用操作:找元素、取文本、遍历子节点

拿到 root 后,可快速提取数据:

  • root.tag:获取根标签名(如 "note"
  • root.text:获取直接子文本(注意:常为空,需查子元素)
  • root.find("to"):查找第一个匹配的直接子元素(返回 Element 或 None)
  • root.findall("to"):查找所有同名直接子元素(返回列表)
  • for child in root::遍历所有直接子元素
  • elem.get("attr_name"):获取元素属性值(如 elem.get("id") 返回 "101"

简单示例:读取并打印 note.xml 中的 to 和 from

设文件内容为:BobAlice

  • import xml.etree.ElementTree as ET
  • root = ET.parse("note.xml").getroot()
  • print(root.find("to").text) # 输出 Bob
  • print(root.find("from").text) # 输出 Alice


# python 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 弹幕视频网站制作教程下载,弹幕视频网站是什么意思?  PHP怎么接收前端传的文件路径_处理文件路径参数接收方法【汇总】  Laravel如何使用缓存系统提升性能_Laravel缓存驱动和应用优化方案  nginx修改上传文件大小限制的方法  Laravel如何编写单元测试和功能测试?(PHPUnit示例)  Laravel怎么多语言本地化设置_Laravel语言包翻译与Locale动态切换【手册】  重庆市网站制作公司,重庆招聘网站哪个好?  HTML 中动态设置元素 name 属性的正确语法详解  如何正确选择百度移动适配建站域名?  如何在云虚拟主机上快速搭建个人网站?  详解Android中Activity的四大启动模式实验简述  实现点击下箭头变上箭头来回切换的两种方法【推荐】  Laravel怎么在Blade中安全地输出原始HTML内容  Laravel如何生成API文档?(Swagger/OpenAPI教程)  如何获取上海专业网站定制建站电话?  PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)  如何在阿里云高效完成企业建站全流程?  Laravel如何实现数据库事务?(DB Facade示例)  php做exe能调用系统命令吗_执行cmd指令实现方式【详解】  无锡营销型网站制作公司,无锡网选车牌流程?  linux写shell需要注意的问题(必看)  如何确认建站备案号应放置的具体位置?  Laravel怎么设置路由分组Prefix_Laravel多级路由嵌套与命名空间隔离【步骤】  Bootstrap整体框架之CSS12栅格系统  Win11怎么查看显卡温度 Win11任务管理器查看GPU温度【技巧】  郑州企业网站制作公司,郑州招聘网站有哪些?  佛山网站制作系统,佛山企业变更地址网上办理步骤?  在Oracle关闭情况下如何修改spfile的参数  JavaScript常见的五种数组去重的方式  如何在IIS7上新建站点并设置安全权限?  如何快速打造个性化非模板自助建站?  Win11任务栏卡死怎么办 Windows11任务栏无反应解决方法【教程】  网站建设要注意的标准 促进网站用户好感度!  Laravel如何生成PDF或Excel文件_Laravel文档导出工具与使用教程  Laravel如何处理文件下载请求?(Response示例)  Laravel如何与Pusher实现实时通信?(WebSocket示例)  微信小程序 配置文件详细介绍  如何使用 jQuery 正确渲染 Instagram 风格的标签列表  制作企业网站建设方案,怎样建设一个公司网站?  消息称 OpenAI 正研发的神秘硬件设备或为智能笔,富士康代工  Java垃圾回收器的方法和原理总结  Laravel怎么实现API接口鉴权_Laravel Sanctum令牌生成与请求验证【教程】  如何在HTML表单中获取用户输入并用JavaScript动态控制复利计算循环  Laravel如何自定义错误页面(404, 500)?(代码示例)  移动端脚本框架Hammer.js  中山网站推广排名,中山信息港登录入口?  悟空识字如何进行跟读录音_悟空识字开启麦克风权限与录音  Laravel如何创建自定义Artisan命令?(代码示例)  Laravel如何处理跨站请求伪造(CSRF)保护_Laravel表单安全机制与令牌校验  Laravel如何优化应用性能?(缓存和优化命令)