XML的全称是eXtensible Markup Language, 意为可扩展的标记语言, 是一种用于标记电子文件使其具有结构性的标记语言。以XML结构存储数据的文件就是XML文件,它被设计用来传输和存储数据。例如有以下内容的xml文件。

<note>

<to>George</to>

<from>John</from>

<heading>Reminder</heading>

<body>Don't forget the meeting!</body>

</note>

其内容表示一份便签,来自John,发送给George,标题是Reminder,正文是Don't  forget the meeting!。 XML本身并没有定义note、to、from等标签,是生成xml文件时自定义的,但我们仍能理解其含义。XML文档仍然没有做任何事情,它仅仅是包装在XML标签中的纯粹信息。我们编写程序来获取文档结构信息就是解析XML文件。

Python有三种方法解析XML:SAX、DOM、ElementTre。

1. SAX(simple API for XML)

SAX是一种基于事件驱动的API,使用时设计两个部分,即解析器和事件处理器。解析器负责读取XML文件,并向事件处理器发送相应的事件(如元素开始事件、元素结束事件)。事件处理器对相应的事件做出响应,对数据做出处理。使用方法是先创建一个新的XML-Reader对象,然后设置XMLReader的事件处理器ContentHandler,最后执行XMLReader的parse()方法。

创建一个新的

10. 解析XML文件(SAX/DOM/ElementTre)相关推荐

  1. 解析XML文件——SAX解析技术

    通常的文件等等都是以xml形式存储的,当我们要查看时就必须将他们解析出来.通常有nSimple API for XML(SAX) :nDocument Object Model(DOM)(不建议使用) ...

  2. python 解析xml 文件: SAX方式

    环境 python:3.4.4 准备xml文件 首先新建一个xml文件,countries.xml.内容是在python官网上看到的. <?xml version="1.0" ...

  3. java jdom dom4j_Java基础系列17:使用DOM、SAX、JDOM、DOM4J解析XML文件详解

    一 简介 在Java中,可以使用多种方式来解析XML文件,其中最常见的可能就是DOM.SAX.JDOM.DOM4J这四种方式了.其中,DOM和SAX这两种解析XML文件的方式有jdk自带的API,因此 ...

  4. SAX解析XML文件

    就目前来说,有三种方式可以解析XML文件:DOM.SAX.StAX.DOM将整个XML文件加载到内存中,并构建出节点树:应用程序可以通过遍历节点树的方式来解析XML文件中的各个节点.属性等信息:这种方 ...

  5. Android学习笔记---Android平台1.使用dom解析xml文件

    1.使用dom解析xml文件 除了使用 SAX可以解析XML文件,大家也可以使用熟悉的DOM来解析XML文件. DOM解析XML文 件时,会将XML文件的所有内容以文档树方式存放在内存中,然后允许您使 ...

  6. 使用jdk DOM,SAX和第三方jar包DOM4J创建,解析xml文件

    xml的创建,解析 1. 什么是xml文件 1.1 什么是xml文件 1.2 解析xml的方式,优缺点 2. 使用dom操作xml文件 2.1 使用dom创建xml文件 2.2 使用dom解析xml文 ...

  7. java sax xml文件解析_java解析xml文件-DOM/SAX

    java解析xml文件的两种方式 1:DOM 原理:把整个文档加载到内存,转化成dom树,之后应用程序可以随机的访问dom树的任何数据,灵活 快,但消耗内存 一个简单的xml 使用java解析 //b ...

  8. convert android layout xml,详解Android之解析XML文件三种方式(DOM,PULL,SAX)

    1.xml文件代码 ${fq.content} ${fq.time} 2.XML网页效果图 3.Android代码 1.布局文件 xmlns:tools="http://schemas.an ...

  9. Dom方法,解析XML文件

    Dom方法,解析XML文件的基本操作 1 package com.demo.xml.jaxp; 2 3 import java.io.IOException; 4 5 import javax.xml ...

最新文章

  1. 迭代法移动盘子java,算法学习--日记(牛顿迭代法)
  2. ubuntu 16.0.4 opencv 4.0.0 + opencv_contrib 4.0.0 cmake-gui 安装
  3. android 5.1 raw,升级安卓5.1 三星S6/S6 edge将支持RAW
  4. 前端编程之jQuery
  5. 36套java精品高级课_Dubbo-ZooKeeper“走一波”
  6. C#中的修饰符及其说明
  7. 【codevs1690】开关灯,线段树练习
  8. java int数组任何数之间间隔不能对于指定数,内付极速排序
  9. jade的基本使用方法
  10. 「ds」网络操作系统和分布式操作系统之间的区别
  11. 什么是知识,什么是知识图谱,有什么作用,有哪些应用领域?
  12. 【踩坑日记】Vue组件@click事件点击没有反应
  13. Servlet和tomcat部署
  14. 【转】获取用户移动方向,指南针原理
  15. C语言程序设计#成绩查询系统
  16. 一曲《千秋令》,唱不尽千古风华
  17. java实现邮件发送_基于JavaMail的Java实现简单邮件发送功能
  18. 【win】引用的账户当前已经锁定,且可能无法登陆
  19. 【C/C++】数组和链表的区别
  20. python多进程log日志问题_Python 如何安全地实现实现多进程日志以及日志正常的分割...

热门文章

  1. mysql1033错误存储引擎_【Mysql问题集锦(1)】mysql不能使用innodb存储引擎
  2. linux启动tomcat不停的触发gc,tomcat的rmi触发的full gc的时间过长的优化
  3. map评价吗 voc数据集可以用coco_【庖丁解牛】从零实现RetinaNet(九):使用COCO预训练权重在VOC上训练RetinaNet...
  4. linux eclipse web插件,使用Tomcat插件开发WEB应用
  5. 几条跟堆栈扯上关系的汇编指令
  6. Java前沿分享:value或许成为java的新关键字
  7. 再见XShell!这款国产终端更好用!
  8. 为什么 StringBuilder 不是线程安全的?
  9. 皮一皮:这婚还结不结...
  10. 大量的 TIME_WAIT 状态 TCP 连接,对业务有什么影响?