由于最近处理数据时涉及到dblp.xml,刚开始下载时dblp.xml只有300多M,但解压之后就有1.9G,没有什么东西能够打开,所以必须要用工具来处理,在python中sax包能够一边解析一边处理XML数据

首先我们要知道dblp.xml里面的数据是什么格式的:

以下为处理dplp.xml数据的代码(以下为我需要的数据,大家可以根据自己需要的数据来获取数据):

# -*-coding:utf-8-*-
import xml.sax datas=set() class MovieHandler(xml.sax.ContentHandler):
def __init__(self):
self.title = ""
self.ee = ""
self.year=""
self.journal="" # 元素开始事件处理
def startElement(self, tag, attributes):
self.CurrentData = tag
if tag == "article":
key = attributes["key"]
# 元素结束事件处理
def endElement(self, tag):
if self.CurrentData == "title":
print u'title:',self.title
elif self.CurrentData == "ee":
print u'ee:',self.ee
elif self.CurrentData == "journal":
print u'journal:',self.journal
if self.CurrentData == "year":
print u'year:', self.year
self.CurrentData = "" # 内容事件处理
def characters(self, content):
if self.CurrentData == "title":
self.title = content
elif self.CurrentData == "ee":
self.ee = content
elif self.CurrentData == "year":
self.year = content
elif self.CurrentData == "journal":
self.journal = content if (__name__ == "__main__"):
# 创建一个 XMLReader
parser = xml.sax.make_parser()
# turn off namepsaces
parser.setFeature(xml.sax.handler.feature_namespaces, 0) # 重写 ContextHandler
Handler = MovieHandler()
parser.setContentHandler(Handler)
parser.parse("dblp.xml")

特别注意解析dblp.xml的时候要把dblp.dtd下载下来放在对应文件夹,要不python会显示缺少该文件

最新文章

  1. QBC
  2. mysql设置外网访问
  3. httpd的警告
  4. JS判断输入框值是否为空
  5. Censored! - POJ 1625(ac自动机+简单dp+高精度运算)
  6. oracle 自治事物 -- autonomous transaction
  7. 关于t分布的证明
  8. C#读写word
  9. 隐式的处理SOAPHeader消息
  10. 2017年7月Web服务器调查报告
  11. Linux之网络管理
  12. (6)STM32使用HAL库实现modbus的简单通讯
  13. (二) Keras 非线性回归
  14. Android为TV端助力 自定义动画
  15. 访问和获取Cookie
  16. 数据分析---SQL(Access数据库)
  17. 在eclipse中导入hadoop jar包,和必要时导入源码包。
  18. 1100C NN and the Optical Illusion
  19. URAL 1029 Ministry
  20. 【校招面试 之 C/C++】第3题 为什么要内存对齐?以及内存对齐的方式

热门文章

  1. Mybatis-Plus 实战完整学习笔记(十)------条件构造器核心用法大全(下)
  2. MySql Cast与Convert函数
  3. DS8800后端的光纤通道交换式互连方式
  4. mui学习
  5. 20145232 韩文浩 《Java程序设计》第7周学习总结
  6. java注解学习(1)注解的作用和三个常用java内置注解
  7. Android 如何通过浏览器打开App
  8. Android 响应menu,back键,点击外部消失
  9. mac上配置php开发环境
  10. js-随机图片