gpt4 book ai didi

python - 使用 SAX/Python 解析 XML + 无验证

转载 作者:太空宇宙 更新时间:2023-11-04 11:04:58 24 4
gpt4 key购买 nike

我是 python 的新手,我正在尝试使用 SAX 解析 XML 文件而不验证它。

我的 xml 文件的头部是:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE n:document SYSTEM "schema.dtd">
<n:document....

我尝试用 python 2.5.2 解析它:

from xml.sax import make_parser, handler
import sys

parser = make_parser()
parser.setFeature(handler.feature_namespaces,True)
parser.setFeature(handler.feature_validation,False)
parser.setContentHandler(handler.ContentHandler())
parser.parse(sys.argv[1])

但是我得到一个错误:

python doc.py document.xml
(...)
File "/usr/lib/python2.5/urllib2.py", line 244, in get_type
raise ValueError, "unknown url type: %s" % self.__original
ValueError: unknown url type: schema.dtd

我不希望 SAX 解析器查找模式。我哪里错了?谢谢!

最佳答案

expatreader 将 DTD 外部子集视为外部通用实体。所以你想要的功能是:

parser.setFeature(handler.feature_external_ges, False)

但是,将 DTD 外部子集指向一个不存在的 URL 有点狡猾;如图所示,它不仅验证读取它的解析器。

关于python - 使用 SAX/Python 解析 XML + 无验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1998425/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com