2009-03-15 19 views
63

ElementTree.parseはファイルから読み込みます。すでにXMLデータが文字列に含まれている場合、これをどのように使用できますか?Python xml ElementTreeを文字列ソースから取得しますか?

多分私はここで何かを紛失しているかもしれませんが、文字列をファイルに書き出してもう一度読むことなく、ElementTreeを使用する方法がなければなりません。

xml.etree.elementtree

答えて

54

xml.etree.ElementTree.parseをファイルから解析する場合は、xml.etree.ElementTree.fromstringを使用してテキストを解析できます。

はあなたが要素を作成し、文字列としてテキストを解析し、ということを利用してのElementTreeを作成することができxml.etree.ElementTree.fromstring(テキスト)

from xml.etree.ElementTree import XML, fromstring, tostring 
myxml = fromstring(text) 
+24

問題は、ElementTree.fromstringがElementTreeではなく要素を生成することです。誰でもこの問題を回避する方法を知っていますか? –

+3

@SamuelLampaと同じ問題が言及されています。私はElementTreeではありません。このためにgetroot()を実行できません。 –

+10

@SamuelLampa [dgassawayの答え](http://stackoverflow.com/a/18281386/12744)を参照してください。ET.ElementTree(ET .fromstring(xmlstring)) ' –

2

それはあなたがリンクされたページにあります。 fromstringを使用します。

14

を参照してください。素子。完全ながら

import xml.etree.ElementTree as ET 
tree = ET.ElementTree(ET.fromstring(xmlstring)) 

は、私はちょうど、この問題およびマニュアルに出くわし、parse()fromstring()方法との使用量の差に非常に簡単ではありません。

119
+24

これは受け入れられる回答です。 – fiatjaf

+2

2行目は単純に 'root = ET.fromstring(xmlstring)'とすることができます。 equals 'ET.parse( 'file.xml')。getroot()':https://docs.python.org/3.6/library/xml.etree.elementtree.html#parsing-xml –

関連する問題