Python:使用sax解析包含多个子节点的xml

<?xml version="1.0" encoding="UTF-8"?>
<root>
    <system value="mysql">
        <title>标题</title>
        <search>
            <s1>搜索1</s1>
            <s2>搜索2</s2>
        </search>
        <test>
            <subTest1>111</subTest1>            
            <subTest2>222</subTest2>            
            <subTest3>333</subTest3>
        </test>
    </system>
</root>

使用sax如何处理包含有多个子节点的xml呢?
比如:我想将每个system节点保存到一个dictionary中,然后通过下标来访问

dict['mysql']['search']['s1']=搜索1
dict['mysql']['test']['subTest1']=111

目前想到2中方法:
1.重写 startElement,endElement,characters方法,在其中进行判断
2.递归
第一种方法,已实现,不是很满意(需要继承ContentHandler,并重写几个函数,在函数中进行多种判断)
第二种方法,还没去实现

阅读 5.7k
1 个回答
新手上路,请多包涵

有一种东西叫xmltodict...你的需求一步到位,用sax解析没有必要,sax比较适合将xml转化为实例对象

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题