由于最近处理数据时涉及到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会显示缺少该文件

python for dblp.xml的更多相关文章

  1. python获取DBLP数据集

    #!/usr/bin/python # -*- coding: UTF-8 -*- import xml.sax import io, sys paper_tags = ('article', 'in ...

  2. 用 ElementTree 在 Python 中解析 XML

    用 ElementTree 在 Python 中解析 XML 原文: http://eli.thegreenplace.net/2012/03/15/processing-xml-in-python- ...

  3. python标准库xml.etree.ElementTree的bug

    使用python生成或者解析xml的方法用的最多的可能就数python标准库xml.etree.ElementTree和lxml了,在某些环境下使用xml.etree.ElementTree更方便一些 ...

  4. 在python中处理XML

    XML是实现不同语言或程序之间进行数据交换的协议,XML文件格式如下: <data> <country name="Liechtenstein"> < ...

  5. [python标准库]XML模块

    1.什么是XML XML是可扩展标记语言(Extensible Markup Language)的缩写,其中的 标记(markup)是关键部分.您可以创建内容,然后使用限定标记标记它,从而使每个单词. ...

  6. python专题-读取xml文件

    关于python读取xml文章很多,但大多文章都是贴一个xml文件,然后再贴个处理文件的代码.这样并不利于初学者的学习,希望这篇文章可以更通俗易懂的教如何使用python 来读取xml 文件. 什么是 ...

  7. python模块:xml

    """Core XML support for Python. This package contains four sub-packages: dom -- The W ...

  8. 【304】python专题-读取xml文件

    参考:XML DOM 参考手册(w3school) 参考:python专题-读取xml文件 参考:请问用python怎么修改xml的节点值? 1. 读取标签内的文本(Python) 如下的 xml 文 ...

  9. Python模块 shelve xml configparser hashlib

    常用模块1. shelve 一个字典对象模块 自动序列化2.xml 是一个文件格式 写配置文件或数据交换 <a name="hades">123</a>3. ...

随机推荐

  1. Java安全技术

    分类     Java平台安全,即JRE安全     开发Java程序(普通程序,服务,applet)安全,即提供安全的开发工具和服务.   用法     用签名和安全策略控制远程的资源访问

  2. (01背包 第k优解) Bone Collector II(hdu 2639)

    http://acm.hdu.edu.cn/showproblem.php?pid=2639       Problem Description The title of this problem i ...

  3. noip第4课资料

  4. TypeScript开发环境搭建(Visual studio code)

    使用Visual Studio Code搭建TypeScript开发环境 1.TypeScript是干什么的 ? TypeScript是由微软Anders Hejlsberg(安德斯·海尔斯伯格,也是 ...

  5. 微软新一代Surface发布,参数曝光

    在沉寂许久之后,Surface 2及Surface Pro 2又有猛料爆出,这一次不单单是新品展示,伴随的还有更多的详细的参数和全新配件. 从外观来看,新一代的Surface外形上沿袭了上一代,但颜色 ...

  6. verilog选择数据类型时常犯的错误

    •    信号可以分为端口信号和内部信号.出现在端口列表中的信号是端口信号,其它的信号为内部信号. •    对于端口信号,输入端口只能是net类型.输出端口可以是net类型,也可以是register ...

  7. Linux (rz、sz命令行)与本地电脑 命令行上传、下载文件

    Linux 与本地电脑直接交互, 命令行上传.下载文件. 一.lrzsz命令行安装: 1.rpm安装:(链接: http://pan.baidu.com/s/1cBuTm2 密码: vijf) rpm ...

  8. Java学习--循环语句1

    1. break public class BreakDemo{ // 完成一个四则运算的功能 public static void main(String args[]){ for(int i=0; ...

  9. B - Avoiding a disaster

    Description Percy likes to be punctual. So much so that he always keeps three watches with him, so t ...

  10. 论文笔记(1)-Dropout-Improving neural networks by preventing co-adaptation of feature detectors

    Improving neural networks by preventing co-adaptation of feature detectors 是Hinton在2012年6月份发表的,从这篇文章 ...