python2.7 - Python的lxml模块,无法用dtd验证xml文件是为什么?
PHP中文网
PHP中文网 2017-04-17 17:23:23
0
0
611

我现在想要解析一个xml文件,然后把里面的内容读取出来再转成csv文件。于是我决定用lxml模块,然而在使用的过程中,代码老是报错说有属性没有定义,可是在都DTD文件里头已经很明显的定义了,而且我也确认了dtd文件确实有导入。 我不知道这到底是什么原因,即使是把dtd文件放进测试的xml文件里头也不行。
不知道有没有人可以给我一些解决的思路,谢谢各位。

以下是相关的测试代码:

context = etree.iterparse(f, dtd_validation=True, load_dtd=True, events=("start", "end"), resolve_entities=True) testtext = etree.XMLParser(dtd_validation=True, load_dtd=True, resolve_entities=True) context = iter(context) event, root = next(context) current_tag = None for event, elem in context: print elem.tag

运行以上代码以后就会报出以下:

lxml.etree.XMLSyntaxError: No declaration for attribute mdate of element www, line 5, column 15

可是DTD文件已经明确定义了‘www’的属性‘mdate’:

     

所以我不知道为什么他还是会报错说没有定义这个属性。
接下来是相关的xml测试代码:

    Michael Ley DBLP.uni-trier.de: Computer Science Bibliography http://dblp.uni-trier.de/ 1993  
E. F. Codd C. J. Date Interactive Support for Non-Programmers: The Relational and Network Approaches. IBM Research Report, San Jose, California RJ1400 June 1974

所以基本上我整个人是处于懵逼状态的。不知道各位能不能告诉我一下到底是什么原因导致这个问题,然后可以怎么解决。 谢谢各位大大了。。。_(:зゝ∠)_

PHP中文网
PHP中文网

认证高级PHP讲师

모든 응답 (0)
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!