在网上找了一堆,也看了很多,发现暂时只有这个符合自己的期望,原地址:http://blog.csdn.net/kbkiss_1/article/details/5786718
# !usr/bin/python # coding: utf-8 # parsexml.py # 本例子参考自python联机文档,做了适当改动和添加 import xml.parsers.expat # 控制打印缩进 level = 0 # 获取某节点名称及属性值集合 def start_element(name, attrs): global level print ' '*level, 'Start element:', name, attrs level = level + 1 # 获取某节点结束名称 def end_element(name): global level level = level - 1 print ' '*level, 'End element:', name # 获取某节点中间的值 def char_data(data): if(data == '/n'): return if(data.isspace()): return global level print ' '*level, 'Character data:', data p = xml.parsers.expat.ParserCreate() p.StartElementHandler = start_element p.EndElementHandler = end_element p.CharacterDataHandler = char_data p.returns_unicode = False f = file('protocol_config.xml') p.ParseFile(f) f.close()
此代码可以将我用xmlspy2010创建的xml直接解析出来,同样折文档,用此博文中的代码,解析为空:http://www.cnblogs.com/lgcf/archive/2009/09/25/1573863.html
具体原因尚未细查,后面有时间需仔细看看前面这个代码的实际效用。