2016-07-18 4 views
-1

私のコードは単純です。これを実行するときファイルを開くときのlxmlの暗号化エラー

f = open(r"C:\filepath\file.xml") 
xml = f.read() 
tree = etree.parse(xml) 

、私はここで何が起こっているスタックトレース

tree = etree.parse(xml) 
    File "src/lxml/lxml.etree.pyx", line 3427, in lxml.etree.parse (src\lxml\lxml.etree.c:79801) 
    File "src/lxml/parser.pxi", line 1782, in lxml.etree._parseDocument (src\lxml\lxml.etree.c:115995) 
    File "src/lxml/parser.pxi", line 1808, in lxml.etree._parseDocumentFromURL (src\lxml\lxml.etree.c:116345) 
    File "src/lxml/parser.pxi", line 1712, in lxml.etree._parseDocFromFile (src\lxml\lxml.etree.c:115233) 
    File "src/lxml/parser.pxi", line 1115, in lxml.etree._BaseParser._parseDocFromFile (src\lxml\lxml.etree.c:109930) 
    File "src/lxml/parser.pxi", line 573, in lxml.etree._ParserContext._handleParseResultDoc (src\lxml\lxml.etree.c:103404) 
    File "src/lxml/parser.pxi", line 683, in lxml.etree._handleParseResult (src\lxml\lxml.etree.c:105058) 
    File "src/lxml/parser.pxi", line 611, in lxml.etree._raiseParseError (src\lxml\lxml.etree.c:103924) 
IOError 

を取得しますか?

答えて

1

parse()は、XMLファイルへのパスを受け入れる:

tree = etree.parse(r"C:\filepath\file.xml") 

現在、あなたのコードは、このようなIOErrorをトリガする、parse()にXMLの実際の内容を渡します。代わりにfromstring()を使用して、実際のXMLデータを含む文字列からElementオブジェクトを作成することができます。必要に応じて、以前に作成したのオブジェクトElementTreeを作成できます。

f = open(r"C:\filepath\file.xml") 
xml = f.read() 
root = etree.fromstring(xml) 
tree = etree.ElementTree(root) 
関連する問題