`

Python SAX解析XML

 
阅读更多

XML解析方式有SAX,DOM两种,单纯读取XML文档的话SAX有先天优势。下面介绍一下SAX解析XML:

import xml.sax
from xml.sax import make_parser
from xml.sax.handler import ContentHandler

class ParseHandler(ContentHandler):
    def __init__(self):
        self.CurrentData = ""
        self.type = ""
        self.format = ""
        self.year = ""
        self.ration = ""
        self.stars = ""
        self.description = ""

    def characters(self, content):
        print(content.strip().replace(' ', '').replace('\n', '').replace('\t', '').replace('\r', '').strip())

    def startDocument(self):
        print("解析开始")

    def endDocument(self):
        print("解析结束")

    def startElement(self, name, attrs):
        if name == 'movie':
            print("startElement", name, "attrs", attrs["title"])
        else:
            print("startElement", name, "attrs")

    def endElement(self, name):
        print("endElement", name)

if __name__ == '__main__':
    parser = make_parser()
    parser.setFeature(xml.sax.handler.feature_namespaces,0)
    Handel = ParseHandler()
    parser.setContentHandler(Handel)
    parser.parse("movies.xml")

 文件movies.xml内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<collection shelf="New Arrivals">
   <movie title="Enemy Behind">
      <type>War, Thriller</type>
      <format>DVD</format>
      <year>2003</year>
      <rating>PG</rating>
      <stars>10</stars>
      <description>Talk about a US-Japan war</description>
   </movie>
   <movie title="Transformers">
      <type>Anime, Science Fiction</type>
      <format>DVD</format>
      <year>1989</year>
      <rating>R</rating>
      <stars>8</stars>
      <description>A schientific fiction</description>
   </movie>
   <movie title="Trigun">
      <type>Anime, Action</type>
      <format>DVD</format>
      <episodes>4</episodes>
      <rating>PG</rating>
      <stars>10</stars>
      <description>Vash the Stampede!</description>
   </movie>
   <movie title="Ishtar">
      <type>Comedy</type>
      <format>VHS</format>
      <rating>PG</rating>
      <stars>2</stars>
      <description>Viewable boredom</description>
   </movie>
</collection>

 

分享到:
评论

相关推荐

    Python3基于sax解析xml操作示例

    本文实例讲述了Python3基于sax解析xml操作。分享给大家供大家参考,具体如下: python使用SAX解析xml SAX是一种基于事件驱动的API。 利用SAX解析XML文档牵涉到两个部分:解析器和事件处理器。 解析器负责读取XML文档,...

    SAX解析xml,vdx等文件

    这个文件可能包含了使用SAX解析XML或者vdx文件的具体Java或Python代码,包括设置解析器、注册事件处理器、处理XML事件等步骤。 总的来说,SAX解析xml和vdx文件是针对大文件处理的一种高效策略,通过定制化的事件...

    Python如何对XML 解析

    在Python中使用SAX解析XML,需要导入`xml.sax`模块,并实现`ContentHandler`类的方法,如`startElement`、`endElement`、`characters`等。`startElement`和`endElement`会在遇到元素开始和结束标签时被调用,`...

    python_elementt_xml.zip_python xml_xml解析 python

    在提供的`python使用elementtree模块解析xml.txt`文档中,应包含了使用`ElementTree`解析XML的详细代码示例。通过学习这些代码,你可以理解如何根据实际需求处理XML数据。实践中,可能涉及更复杂的操作,如处理命名...

    Python使用sax模块解析XML文件示例

    ### Python使用sax模块解析XML文件的关键知识点 #### 一、引言 在现代软件开发过程中,XML(可扩展标记语言)作为一种常见的数据交换格式,被广泛应用于不同系统之间的数据传输与存储。Python作为一种功能强大的...

    XML解析实践之DOM解析和SAX解析.rar

    Python中,有ElementTree库支持DOM和SAX解析。 2. 错误处理:在解析过程中,要捕获并处理可能出现的异常,如XML格式错误、网络问题等。 3. 性能优化:对于大型XML文件,若使用DOM解析,可以考虑分块读取或使用SAX...

    xml.zip_XML解析_xml_解析xml

    Python提供了两个内置的XML处理库:`xml.dom.minidom`(DOM解析)和`xml.sax`(SAX解析)。以下是一些基本用法: ```python # DOM解析 from xml.dom.minidom import parse doc = parse('example.xml') title = doc....

    PB 解析xml格式串

    Python中可以使用`xml.etree.ElementTree`库进行解析,Java中可使用DOM或SAX解析器。 3. **XML到PB转换**:这个过程需要先定义PB消息类型,匹配XML数据的结构。然后编写解析代码,将XML元素映射到对应的PB消息字段...

    python读取XML文件资料集合

    Python 中还有许多其他的 XML 工具,例如 PyXML、xml.dom.minidom、xml.sax 等。这些工具都可以用来处理 XML 文档,并提供了许多有用的功能。 在 Python 中读取 XML 文件可以使用以下步骤: 1. 导入 XMLLIB 模块 2...

    解析xml和本地解析xml

    常见的本地解析XML的库有Java的DOM和SAX,Python的ElementTree,JavaScript的DOMParser等。 4. CLOB字段与XML数据: CLOB(Character Large Object)是数据库中用于存储大量字符数据的类型,常用于存储XML文档。当...

    解析xml的三种方式DOM/SAX/PULL

    本文将深入探讨解析XML的三种主要方法:DOM(Document Object Model)、SAX(Simple API for XML)和PULL解析。 1. DOM解析: DOM是W3C推荐的标准解析方式,它将整个XML文档加载到内存中,构建一个树形结构,称为...

    解析xml链接

    Python中的`xml.sax`库提供了SAX解析器。在SAX解析中,我们需要创建一个事件处理器类来处理XML元素: ```python import xml.sax from xml.sax.handler import ContentHandler class RSSHandler...

    SaxReadXML

    - "源码"标签可能意味着讨论的是如何在代码中实现SAX解析XML文件的示例。 - "工具"可能涉及使用特定的开发工具或库,如Java的`org.xml.sax`包,或者其他语言的SAX实现,如Python的`xml.sax`模块。 结合提供的博客...

    解析XML特殊字符方法

    例如,在Python中,可以使用`xml.sax.saxutils.escape()`函数来编码特殊字符,而在JavaScript中,可以使用`encodeURI()`或`encodeURIComponent()`函数。同样,接收XML数据后,可以通过解码函数还原这些字符。 **3. ...

    能够解析XML的程序.rar_XML 解析_xml_解析xml

    以Python的ElementTree为例,我们可以使用以下代码解析XML文件: ```python import xml.etree.ElementTree as ET def parse_xml(file_name): tree = ET.parse(file_name) root = tree.getroot() # 遍历并处理...

    pythonxml:重温Python的XML工具l:

    - **简介**:`xmllib` 是Python中最基础的XML解析器之一,它是一个非验证性的低级解析器,主要用于简单的XML文档解析。通过继承 `xmllib.XMLParser` 类并覆盖其方法,可以实现对特定元素和实体的自定义处理逻辑。 - ...

    Python XML 解析

    Python XML 解析 什么是 XML? XML 指可扩展标记语言(eXtensible Markup Language)。 你可以通过本站学习 XML 教程 XML 被设计用来传输和存储数据。...Python 有三种方法解析 XML,SAX,DOM,以及 Element

Global site tag (gtag.js) - Google Analytics