• 技术文章 >Python技术 >Python基础教程

    python操作xml的两种方法

    小妮浅浅小妮浅浅2021-08-30 09:37:42原创2545

    说明

    1、DOM会将整个XML读入内存,解析为树,所以占用内存大,解析慢。

    它的优点是可以随意遍历树的节点。

    2、SAX是一种流模式,边读边分析,占用内存小,分析快,缺点是需要自己处理事件。

    一般情况下,SAX优先考虑,因为DOM占用内存太多。

    实例

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    35

    36

    37

    38

    39

    40

    41

    42

    43

    44

    45

    46

    47

    from xml.parsers.expat import ParserCreate

      

    class DefaultSaxHandler(object):

        def start_element(self, name, attrs):

            print('sax:start_element: %s, attrs: %s' % (name, str(attrs)))

      

        def end_element(self, name):

            print('sax:end_element: %s' % name)

      

        def char_data(self, text):

            print('sax:char_data: %s' % text)

      

    xml = r'''<?xml version="1.0"?>

    <ol>

        <li><a href="/python">Python</a></li>

        <li><a href="/ruby">Ruby</a></li>

    </ol>

    '''

      

    handler = DefaultSaxHandler()

    parser = ParserCreate()

    parser.StartElementHandler = handler.start_element

    parser.EndElementHandler = handler.end_element

    parser.CharacterDataHandler = handler.char_data

    parser.Parse(xml)

      

    //测试结果

    sax:start_element: ol, attrs: {}

    sax:char_data:

      

    sax:char_data:    

    sax:start_element: li, attrs: {}

    sax:start_element: a, attrs: {'href': '/python'}

    sax:char_data: Python

    sax:end_element: a

    sax:end_element: li

    sax:char_data:

      

    sax:char_data:    

    sax:start_element: li, attrs: {}

    sax:start_element: a, attrs: {'href': '/ruby'}

    sax:char_data: Ruby

    sax:end_element: a

    sax:end_element: li

    sax:char_data:

      

    sax:end_element: ol

    以上就是python操作xml的两种方法,希望对大家有所帮助。更多Python学习指路:python基础教程

    本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。

    专题推荐:python xml
    上一篇:python方差检验是什么意思 下一篇:python中htmlparser解析html

    相关文章推荐

    • python赋值运算符如何使用• python赋值运算符支持哪些赋值• python赋值运算符是什么• python传递实参的方法• python关键字实参的使用• python导入模块的过程• python中Task封装协程• python迭代器和生成器的总结• python切片有哪些特征• python卡方检验是什么• python中T检验如何理解• python方差检验是什么意思

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网