Python中xml文件处理 - vip共享吧
  • 网站首页
  • IT技术笔记
    • Java教程
    • MySql数据库
    • PHP开发
    • Python教程
    • JavaScript
    • SEO优化
    • 常用工具
  • 好资源福利
    • 会员账号共享
  • 网站模板源码
    • 小程序源码
    • 网站源码
  • 共享网络资源
  • 更多功能
    • 留言吐槽
    • 文章归档
    • 我的邻居
    • 史上今日
    • 视频解析
    • 高清壁纸
    • 公告动态
    • 广告合作
    • 关于我们


导航菜单
  • 网站首页
  • IT技术笔记
    • Java教程
    • MySql数据库
    • PHP开发
    • Python教程
    • JavaScript
    • SEO优化
    • 常用工具
  • 好资源福利
    • 会员账号共享
  • 网站模板源码
    • 小程序源码
    • 网站源码
  • 共享网络资源
  • 更多功能
    • 留言吐槽
    • 文章归档
    • 我的邻居
    • 史上今日
    • 视频解析
    • 高清壁纸
    • 公告动态
    • 广告合作
    • 关于我们
Python

Python中xml文件处理

2024/9/5 韩俊  Python教程 538 0

xml 比 json 复杂,在 web 中的应用越来越少,有些地方也会用到,我们有必要了解一下 xml。解析 xml 有两种方法:dom 和 sax。dom 会把整个 xml 读入内存,因此占用内存大,解析慢;sax 是流模式,边读边解析,占用内存小,解析快。我们本节就学习如何用 sax 来解析 xml。

使用 sax 解析器解析 xml

我们使用 sax 解析 xml 文件,我们只需要写一个类继承 sax 模块的 ContentHandler 类即可,我们可以通过重写父类的函数,定制自己的方案。

ContentHandler 类即可,我们可以通过重写父类的函数,定制自己的方案。

from xml import sax

class MyHandler(sax.ContentHandler):       # 定义自己的 handler 类,继承 sax.ContentHandler
    def __init__(self):
        sax.ContentHandler.__init__(self)  # 父类和子类都需要初始化(做一些变量的赋值操作等)
        self._content = ""
        self._tag = ""

    def startElement(self, name, attrs):   # 遇到 <tag> 标签时候会执行的方法,这里的 name,attrs 不用自己传值的(这里其实是重写)
        self._tag = name
        if name == "birdpython":
            print("=========birdpython.com=========")
        if self._tag == "book":
            print("BOOK: " + attrs["category"])
            print("--------------------------")

    def endElement(self, name):             # 遇到</tag>执行的方法,name 不用自己传值(重写)
        if name == "birdpython":
            print("=========birdpython.com=========")
        elif name == "title":
            print("Title: " + self._content)
        elif name == "author":
            print("Author: " + self._content)
        elif name == "year":
            print("Year: " + self._content)
        elif name == "price":
            print("Price: " + self._content)
        else:
            pass

    def characters(self, content):  # 获取标签内容
        self._content = content

xml = '''
<birdpython>
    <book category="python教程">
        <title>python</title>
        <author>韩俊</author>
        <year>2023</year>
        <price>免费</price>
    </book>
    <book category="人工智能教程">
        <title>python视频</title>
        <author>韩俊</author>
        <year>2023</year>
        <price>微信打赏赠送</price>
    </book>
</birdpython>
'''
handler = MyHandler()          # 自定义类实例化成对象
sax.parseString(xml, handler)  # 解析xml文件


现在我们一般使用 json 替代了 xml,关于 xml 结构和解析的东西,我们本节课不在赘述。

本节重要知识点

会使用 xml 中的 sax 模块。

了解一下 xml 结构。

点赞:0 分享

上一篇
Python中urllib模块详解
下一篇
python中time模块详解
作者头像 作者名称 作者性别
韩俊

热门推荐

1 Python多重继承
2 Python3的构造函数和访问控制
3 python argparse用法总结
4 Python3生成器
5 Python3装饰器
6 python中collections库详解

评论列表

取消回复

    •  
      Login

      韩俊

      趁你现在还有时间,尽你自己最大的努力,努力做成你最想做的那件事,成为你最想成为的那种人,过着你最想过的那种生活。这个世界永远比你想的要更精彩,不要败给生活。

      退出登陆
      • 10358文章
      • 455评论
      • 80微语
  • 广告赞助

  • 二零二五年07月
    一二三四五六日
     123456
    78910111213
    14151617181920
    21222324252627
    28293031   
  • 分类

    • 网站模板源码
    • IT技术笔记
    • 好资源分享
    • 共享网络资源
  • 最新文章

      • 小朋友祖国祝福语简短
        • 国庆祖国祝福语简短独特
          • 新年祝福语简短简单
            • 祝贺孩子考学祝福语简短
              • 婚礼新郎祝福语简短励志
                • 嫁女结婚祝福语简短精辟
                  • 祝医生节简短祝福语
                    • 大童生日祝福语简短
  • 热门文章

    • 酷狗音乐VIP账号 酷狗音乐会员账号共享2017.01.29更新
    • 芒果tv vip会员账号 芒果tv会员账号共享2017.01.29更新
    • 爱奇艺vip账号 爱奇艺/PPS会员账号共享2016.12.12更新
    • 优酷/土豆vip会员账号 优酷会员账号共享2017.01.29更新
    • 活动:免费获得爱奇艺VIP/PPS会员账号50天以上的使用权!
    • 酷我音乐VIP账号 酷我音乐会员账号共享2016.12.31更新
    • 暴风影音会员账号 暴风影音会员账号共享2016.12.31更新
    • m1905会员账号 m1905会员账号共享2016.10.21更新
  • 最新评论

    • https://www.vipshare8.com/content/templates/meta/Static/images/tx/10.jpg

      你丫的 文章写得太好了 支持下!![F3...

    • https://www.vipshare8.com/content/templates/meta/Static/images/avatar.jpg

      很棒!刚在某网站看到这个,很欣赏,可惜下...

    • https://www.vipshare8.com/content/templates/meta/Api/qqtx.php/?qq=3861064027

      呃呃呃 oooo

    • https://www.vipshare8.com/content/uploadfile/202103/thum-490d1614564497.png

      回复了111:根据激活的时间有一年的有效期!

    • https://www.vipshare8.com/content/templates/meta/Api/qqtx.php/?qq=792480561

      到2025就到期了吗?

    • https://www.vipshare8.com/content/uploadfile/202103/thum-490d1614564497.png

      [blockquote]打卡时间:16:...

    • https://www.vipshare8.com/content/templates/meta/Static/images/tx/7.jpg

      俊哥,想借用迅雷一用!但需要手机验证!看...

    • https://www.vipshare8.com/content/templates/meta/Api/qqtx.php/?qq=3293901900

      感谢大大的分享

    • https://www.vipshare8.com/content/uploadfile/202103/thum-490d1614564497.png

      回复了好奥v:如果没有解析成功,可以切换接口...

    • https://www.vipshare8.com/content/templates/meta/Api/qqtx.php/?qq=131241242441

      现在视频解析网站怎么用不了啦?

  • 网站统计 I 当前在线:616人

    • 本站管理:1位
    • 用户总数:593位
    • 置顶文章:2篇
    • 日志总数:10358篇
    • 微语总数:80条
    • 评论总数:455条
    • 标签总数:83条
    • 页面总数:8页
    • 分类总数:14个
    • 链接总数:16条
    • 运行天数:3725天
    • 最后更新:7月11日
    • 登录
    • 注册
    • 找回
    Copyright © 2025vip共享吧网站地图 网站备案豫ICP备19004194号-1

    免责声明:本站资源仅供用于学习和交流,本站部分素材内容来源于网络,如有侵权/投稿等,请及时联系站长.

    • 首页
    • 秒懂百科 秒懂百科
    • 搜索
    • 史上今日

    大家都在搜

    • 芒果视频
    • 威客平台
    • 乐视视频
    • JavaScript
    • PHP教程
    • 优酷vip账号共享
    • 微信小程序
    • 电影抢先看
    • 千图网vip账号共享
    • pptv
    • 华数tv会员账号
    • 迅雷VIP账号共享
    • 华数tv会员账号分享
    • 搜狐视频vip账号
    • 喜马拉雅vip会员共享
    • 掌阅会员账号
    • 
    • 