문자열 소스의 Python XML ElementTree?


117

ElementTree.parse는 파일에서 읽습니다. XML 데이터가 이미 문자열에있는 경우 어떻게 사용할 수 있습니까?

여기에 뭔가 빠졌을 수도 있지만 문자열을 파일에 쓰고 다시 읽지 않고 ElementTree를 사용할 수있는 방법이 있어야합니다.

xml.etree.elementtree


2
안녕하세요 George 두 번째 답변 (dgassaway)을 올바른 답변으로 받아 들일 수 있다면 좋을 것입니다.
famargar

답변:


89

를 사용하여 xml.etree.ElementTree.parse파일에서 xml.etree.ElementTree.fromstring구문 분석하는 경우을 사용 하여 텍스트에서 구문 분석 할 수 있습니다 .

xml.etree.ElementTree를 참조하십시오 .


38
문제는 ElementTree.fromstring이 ElementTree가 아닌 요소를 생성한다는 것입니다! 누구든지이 문제를 해결하는 방법을 알고 있습니까?
Samuel Lampa

4
@SamuelLampa가 언급 한 것과 동일한 문제입니다. 나는 ElementTree가 아닙니다. 저는 getroot()이것을 위해 할 수 없습니다
Siddharth Menon

23
참조 @SamuelLampa dgassaway의 대답 , 사용ET.ElementTree(ET.fromstring(xmlstring))
콜린 피카드

6
정답은 @dgassaway에서 제공 한 것 참조
2.718

가져 오기 문을 잊지 마세요
Stevoisiak

225

텍스트를 문자열로 구문 분석하여 요소를 만들고 해당 요소를 사용하여 ElementTree를 만들 수 있습니다.

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

방금이 문제를 보았고 설명서는 완료되었지만 parse()fromstring()메서드 간의 사용법 차이에 대해 매우 간단하지 않습니다 .


5
두 번째 줄은 간단히 root = ET.fromstring(xmlstring). 같음 ET.parse('file.xml').getroot(): docs.python.org/3.6/library/...
안톤 타라 센코

3
@Anton은 OP가 말했듯이 요소가 아닌 ElementTree를 생성하는 것입니다. 예를 들어 ElementTree.write ()를 사용하려는 경우에 유용합니다.
batbrat

16

당신은 xml.etree.ElementTree.fromstring(text)

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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.