7
Pythonでlxml.etree
を使って巨大なxml(> 200MB)を解析したいと思います。私は、XMLファイルをロードするためにetree.parse
を使用しようとしましたが、これが原因ファイルサイズに動作しません:巨大なXMLファイルのためのpython lxml.etreeの使用
etree.parse('file.xml')Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "lxml.etree.pyx", line 2706, in lxml.etree.parse (src/lxml/lxml.etree.c:49958)
File "parser.pxi", line 1500, in lxml.etree._parseDocument (src/lxml/lxml.etree.c:71797)
File "parser.pxi", line 1529, in lxml.etree._parseDocumentFromURL (src/lxml/lxml.etree.c:72080)
File "parser.pxi", line 1429, in lxml.etree._parseDocFromFile (src/lxml/lxml.etree.c:71175)
File "parser.pxi", line 975, in lxml.etree._BaseParser._parseDocFromFile (src/lxml/lxml.etree.c:68173)
File "parser.pxi", line 539, in lxml.etree._ParserContext._handleParseResultDoc (src/lxml/lxml.etree.c:64257)
File "parser.pxi", line 625, in lxml.etree._handleParseResult (src/lxml/lxml.etree.c:65178)
File "parser.pxi", line 565, in lxml.etree._raiseParseError (src/lxml/lxml.etree.c:64521)
lxml.etree.XMLSyntaxError: Excessive depth in document: 256 use XML_PARSE_HUGE option, line 1276, column 7
私はXPath式を使用したいと、私は最初のファイルを解析する必要があります。したがって、XMLファイルをどのように解析できますか? lxml.etree
に接続するにはどのようにXML_PARSE_HUGE
を使用しますか?
ありがとうございます!
が正常に動作します。ありがとうございました。 – scdev
このエラーが発生した場合:「python XMLSyntaxError:内部エラー:大規模な入力参照」、このソリューションも動作します! – ospider