广告
返回顶部
首页 > 资讯 > 后端开发 > Python >用python解析xml的几种方法
  • 298
分享到

用python解析xml的几种方法

几种方法pythonxml 2023-01-31 01:01:36 298人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

Xml: 1. 标签成对出现 2. 区分大小写 3. 标签要正确嵌套 4.开始部分:<?xml version="1.0" encoding="utf-8"?> 5.只能有一个根节点 6.节点可以有属性 DTD:约束XML文件

Xml:

1. 标签成对出现

2. 区分大小写

3. 标签要正确嵌套

4.开始部分:<?xml version="1.0" encoding="utf-8"?>

5.只能有一个根节点

6.节点可以有属性

DTD:约束XML文件的节点

Xml解析:

1. dom(文档对象模型):把解析的xml整个加载到内存,组织成object树。

w3cDom dom4j

from xml.dom.minidom import parse
doc=parse("students.xml")   得到整个DOM文档树
root=doc.documentElement     得到根节点
students=root.getElementsByTagName("student")
class Student:
    def __init__(self,name,age,sex,score):
        self.name=name
        self.age=age
        self.sex=sex
        self.score=score
    def __str__(self):
        return "姓名:{0},年龄:{1},性别:{2},成绩:{3}".fORMat(self.name,self.age,self.sex,self.score)
people=[]
for p in students:
    student = Student(p.getElementsByTagName("name")[0].childnodes[0].data,p.getElementsByTagName("age")[0].childNodes[0].data,p.getElementsByTagName("sex")[0].childNodes[0].data,p.getElementsByTagName("score")[0].childNodes[0].data)
    people.append(student)
for p in people:
    print(p)

 

2. Sax:事件驱动式解析,不会在内存中加载整个文档,只会根据自己编写的事件保存数据

from xml.sax import ContentHandler
from xml.sax import parse
class Student:
    def __init__(self,name=None,age=None,sex=None,score=None):
        self.name=name
        self.age=age
        self.sex=sex
        self.score=score
    def __str__(self):
        return "姓名:{0},年龄:{1},性别:{2},成绩:{3}".format(self.name,self.age,self.sex,self.score)
student=[]
class mysax(ContentHandler):
    def __init__(self):
        self.tag=None
        
self.student=None
    def
startDocument(self):
        pass
    def
startElement(self, name, attrs):
        self.tag = name
        if name=="student":
            self.student=Student()
    def characters(self, content):
        if self.tag=="name":
            self.student.name=content
        if self.tag=="age":
            self.student.age=content
        if self.tag=="sex":
            self.student.sex=content
        if self.tag=="score":
            self.student.score=content
    def endElement(self, name):
        if name=="student":
            student.append(self.student)
            self.student = None
        
self.tag = None
    def
endDocument(self):
        pass
students=mysax()
parse("students.xml",students)
for p in student:
    print(p)

3. 元素树解析(ElmentTree)

from xml.etree.ElementTree import*
class Student:
    def __init__(self,name=None,age=None,sex=None,score=None):
        self.name=name
        self.age=age
        self.sex=sex
        self.score=score
    def __str__(self):
        return "姓名:{0},年龄:{1},性别:{2},成绩:{3}".format(self.name,self.age,self.sex,self.score)
people=[]
root=parse("students.xml")
student1=root.findall("student")
for p in student1:
    student=Student()
    student.name=p.find("name").text
    student.age = p.find("age").text
    student.sex = p.find("sex").text
    student.score = p.find("score").text
    people.append(student)
for p in people:
    print(p)

 

--结束END--

本文标题: 用python解析xml的几种方法

本文链接: https://www.lsjlt.com/news/184689.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 用python解析xml的几种方法
    Xml: 1. 标签成对出现 2. 区分大小写 3. 标签要正确嵌套 4.开始部分:<xml version="1.0" encoding="utf-8"> 5.只能有一个根节点 6.节点可以有属性 DTD:约束XML文件的节...
    99+
    2023-01-31
    几种方法 python xml
  • 深入解读Python解析XML的几种方式
    在XML解析方面,Python贯彻了自己“开箱即用”(batteries included)的原则。在自带的标准库中,Python提供了大量可以用于处理XML语言的包和工具,数量之多,甚至让Python编程...
    99+
    2022-06-04
    几种 方式 Python
  • android操作XML的几种方法总结
    XML作为一种业界公认的数据交换格式,在各个平台与语言之上,都有广泛使用和实现。其标准型,可靠性,安全性......毋庸置疑。在android平台上,我们要想实现数据存储和数据...
    99+
    2022-06-06
    XML 方法 Android
  • python常用的几种GUI解析
    在Python中,开始使用GUI编程的步骤并不复杂,但是它们要求用户开始做出一些选择。作为通用编程语言,每个常见操作系统都有可用的解释器,所以创建图形用户界面对于Python来说并不是难事。程序员可以有很多的选择,真正困难的是如何为用户创建...
    99+
    2023-01-31
    几种 常用 python
  • Java解析XML的四种方式
    xml文件 <?xml version="1.0" encoding="utf-8" ?> <class> <studen...
    99+
    2022-11-12
  • 横向对比分析Python解析XML的四种方式
    在最初学习PYTHON的时候,只知道有DOM和SAX两种解析方法,但是其效率都不够理想,由于需要处理的文件数量太大,这两种方式耗时太高无法接受。 在网络搜索后发现,目前应用比较广泛,且效率相对较高的Elem...
    99+
    2022-06-04
    四种 横向 方式
  • 解析C#拼接Json串的几种方法
    C#定义多行字符串的方式 在定义的前面加上@符号: string aa = @"asdfsdfsd fsdsfsdfsdfsd...
    99+
    2022-11-12
  • Android 解析XML 文件的四种方法总结
    java解析xml文件四种方式 1.介绍 1)DOM(JAXP Crimson解析器) DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准。DOM是以层次结构组织...
    99+
    2022-06-06
    解析xml XML 方法 Android
  • WCF框架中解析方法有几种
    这篇文章主要介绍WCF框架中解析方法有几种,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!构造代理法从名字中可以看出,使用本方法创建客户端服务代理对象,是调用了服务代理类的构造方法。这种方法非常符合创建对象的常规方法:...
    99+
    2023-06-17
  • Android Intent的几种用法详细解析
    Intent应该算是Android中特有的东西。你可以在Intent中指定程序要执行的动作(比如:view,edit,dial),以及程序执行到该动作时所需要的资料。都指定好后...
    99+
    2022-06-06
    intent Android
  • android通用xml解析方法
    1、为什么需要写一个通用xml解析方法。 当需要解析不同的xml节点。你有可能是在xml解析的时候匹配不同节点并且节点名都是写死的,这样的话你解析不同的节点就需要不同的解析方...
    99+
    2022-06-06
    XML 方法 xml解析 Android
  • Android XML数据的三种解析方式
    本篇文章包含以下内容:      XML数据的Dom解析      XML数据的Sax解析 &n...
    99+
    2022-06-06
    XML Android
  • Python 连接 MySQL 的几种方法
    尽管很多 NoSQL 数据库近几年大放异彩,但是像 MySQL 这样的关系型数据库依然是互联网的主流数据库之一,每个学 Python 的都有必要学好一门数据库,不管你是做数据分析,还是网络爬虫,Web 开发、亦或是机...
    99+
    2022-05-26
    python MySQL python 连接MySQL
  • Python中数组的几种使用方法
    二维数组的初始化 matirx_done = [[0 for i in range(0, len(matirx))]for j in range(0, len(matirx[0]))] 就将其初始化为一个与matrix相同大小...
    99+
    2023-01-31
    几种 数组 使用方法
  • Python调用剪切板的几种方法
    最近在网上搜索Python调用剪切板的方法,得到比较多的说法是调用ctypes包中自带的函数get_clipboard和set_clipboard函数,可是但我动手实现时却发现根本没有这两个函数,于是我觉得自己写一篇文字讲述Python的剪...
    99+
    2023-09-04
    python pandas 开发语言
  • 【JAVA基础】-JAVA开发中XML解析多种方法
    【JAVA基础】-JAVA开发中XML解析多种方法 1、什么是XML XML是可扩展标记语言(Extensible Markup Language)是一种标记语言,是从标准通用标记语言(SGML)中简...
    99+
    2023-09-09
    java xml
  • Python 解析参数的三种方法
    Let's go!我们以机器学习当中的调参过程来进行实践,有三种方式可供选择。第一个选项是使用 argparse,它是一个流行的 Python 模块,专门用于命令行解析;另一种方法是读取 JSON 文件,我们可以在其中放置所有超参数;第三种...
    99+
    2023-05-14
    代码 Python 参数
  • 详细解读Python中解析XML数据的方法
    Python可以使用 xml.etree.ElementTree 模块从简单的XML文档中提取数据。 为了演示,假设你想解析Planet Python上的RSS源。下面是相应的代码: from urll...
    99+
    2022-06-04
    方法 数据 详细
  • Android解析XML的三种方式SAX、Pull、Dom
    在android开发中,经常用到去解析xml文件,常见的解析xml的方式有一下三种:SAX、Pull、Dom解析方式。最近做了一个android版的CSDN阅读器,用到了其中的...
    99+
    2022-06-06
    sax XML dom Android
  • python赋值的方法有哪几种
    在Python中,赋值可以通过以下几种方法实现:1. 单变量赋值:将一个值赋给一个变量。例如:pythonx = 102. 多变量赋...
    99+
    2023-10-18
    python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作