Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:使用lxml解析XML_Python_Xml_Parsing_Xml Parsing_Lxml - Fatal编程技术网

Python:使用lxml解析XML

Python:使用lxml解析XML,python,xml,parsing,xml-parsing,lxml,Python,Xml,Parsing,Xml Parsing,Lxml,我正在尝试使用一个名为。该库解析XML格式的DBLP数据。当我试图打印一位作者的所有出版物时,脚本的行为很奇怪。有时打印时没有任何错误,有时显示错误。如果我在一个错误后多次运行同一代码,它将显示发布,而不会出现任何问题。 我使用的代码是: a = dblp.search('Michael L. Littman') for i in range(len(a[0].publications)): print i print a[0].publications[i].title 执行

我正在尝试使用一个名为。该库解析XML格式的DBLP数据。当我试图打印一位作者的所有出版物时,脚本的行为很奇怪。有时打印时没有任何错误,有时显示错误。如果我在一个错误后多次运行同一代码,它将显示发布,而不会出现任何问题。 我使用的代码是:

a = dblp.search('Michael L. Littman')
for i in range(len(a[0].publications)):
    print i
    print a[0].publications[i].title
执行上述代码时出现的错误是:

> Traceback (mostrecent call last):   File "<pyshell#217>", line 3, in <module>
>     print a[0].publications[i].title   File "build\bdist.win32\egg\dblp\__init__.py", line 19, in __getattr__
>     self.load_data()   File "build\bdist.win32\egg\dblp\__init__.py", line 110, in load_data
>     root = etree.fromstring(xml)   File "lxml.etree.pyx", line 3092, in lxml.etree.fromstring (src\lxml\lxml.etree.c:70691)   File
> "parser.pxi", line 1828, in lxml.etree._parseMemoryDocument
> (src\lxml\lxml.etree.c:106689)   File "parser.pxi", line 1716, in
> lxml.etree._parseDoc (src\lxml\lxml.etree.c:105478)   File
> "parser.pxi", line 1086, in lxml.etree._BaseParser._parseDoc
> (src\lxml\lxml.etree.c:100105)   File "parser.pxi", line 580, in
> lxml.etree._ParserContext._handleParseResultDoc
> (src\lxml\lxml.etree.c:94543)   File "parser.pxi", line 690, in
> lxml.etree._handleParseResult (src\lxml\lxml.etree.c:96003)   File
> "parser.pxi", line 620, in lxml.etree._raiseParseError
> (src\lxml\lxml.etree.c:95050) XMLSyntaxError: Space required after the
> Public Identifier, line 2, column 47
可以看到库的代码。 我向作者提出了这个问题,但没有回应。我希望这里的任何人都能帮助我,至少知道可能的错误是什么。
谢谢

听起来像是与记忆有关的问题。当它成功返回时,您可能拥有更多内存,而当它失败时,您可能拥有更少内存。您正在搜索的文件大小是多少?另一方面,您应该为此使用xpath吗?dblp数据集非常大,大于1GB。但是,从代码中可以看出,它查询dblp网站,而不是加载整个xml文档,因为dblp只加载回答查询的xml。对于xpath,我认为这段代码可以节省我的时间。我现在也有同样的问题。如果能在这里找到答案,那太好了!:复制