2017-09-06 26 views
0

私はpythonを使用しています。xml.etree.ElementTreeからXMLコンテンツをファイルに書き込む方法は?

単語の文書からテキストの内容を抽出するために、xml.etree.ElementTreeを使用しました。 結果のXMLコンテンツを別のファイルに書き込むことができません。 tree.write('<path to file>', encoding='utf8')

xml.etree.ElementTree.write('<path to file>') 

しかし、両方の方法として、エラーがスローされます:

はAttributeError以下

は、私は二つの方法を試してみました

import zipfile 
import xml.etree.ElementTree 
with zipfile.ZipFile('<path to docx file>') as docx: 
    tree = xml.etree.ElementTree.XML(docx.read('word/document.xml')) 

コードの私の作品です。 'xml.etree.ElementTree.Element'オブジェクトには属性 'write'がありません

親切に役立つ。

答えて

0

ツリールートは、その子のルート要素である一方で、generaly ElementTreeのオブジェクトです。

xml.etree.ElementTree.parse()をロードすると、適切なElementTreeが返されます。その後

# XML() -> returns root Element 
root = xml.etree.ElementTree.XML(docx.read('word/document.xml')) 
print(root) 
<Element '{http://schemas.openxmlformats.org/wordprocessingml/2006/main}document' at 0x7f5f117ae5d0> 


# parse() -> returns tree ElementTree 
tree = xml.etree.ElementTree.parse(docx.open('word/document.xml')) 
print(tree) 
<xml.etree.ElementTree.ElementTree object at 0x7f5f11805890> 

root = tree.getroot() 
print(root) 
<Element '{http://schemas.openxmlformats.org/wordprocessingml/2006/main}document' at 0x7f5f11805950> 

import zipfile 
import xml.etree.ElementTree 

with zipfile.ZipFile('<path to docx file>') as docx: 
    tree = xml.etree.ElementTree.parse(docx.open('word/document.xml')) 

tree.write('<path to file>') 
+0

それは動作します。ありがとう。 – Bonson

関連する問題