Python 2.7.6에서 lxml 4.1.1로 XML 파일을 읽고, 수정하고 작성하려고합니다.Python lxml에서 XML pretty print가 실패했습니다
는내 코드 :
<a>
<b/>
</a>
를 그리고 생성 된 출력 파일 out.xml
:
<a>
<b><c></c></b>
</a>
또는 내가 remove_blank_text=True
을 설정할 때 :
import lxml.etree as et
fn_xml_in = 'in.xml'
parser = et.XMLParser(remove_blank_text=True)
xml_doc = et.parse(fn_xml_in, parser)
xml_doc.getroot().find('b').append(et.Element('c'))
xml_doc.write('out.xml', method='html', pretty_print=True)
입력 파일 in.xml
은 다음과 같습니다
<a><b><c></c></b></a>
I가
b
요소 내의 줄 바꿈을 삽입하는 LXML 및 들여 쓰기를 기대했을 것이다
:
<a>
<b>
<c></c>
</b>
</a>
가 어떻게 이것을 달성 할 수 있습니까?
좀 tidy
LIB 래퍼를 시도했다, 그러나 그들은 HTML에 오히려 XML보다 전문 보인다.
줄 바꿈 문자를 b
의 tail
으로 추가하려고했으나 들여 쓰기가 깨졌습니다.
편집 :c
요소를 여는 데 분리하여 유지하려면 닫음 태그 <c></c>
이 필요합니다. 이것이 예에서 method='HTML'
을 사용하는 이유입니다. mzjn의 의견에
제거'방법 = 'html'' 또는 사용'방법 ='xml''. – mzjn
감사합니다, 이것은 적절한 해결책을 향해 나를 가리켰다! –