본문 바로가기

SW 개발/Python33

[Tips] Python: XML Parsing 시 multiple elements on top level 1. XML 처리 시 "multiple elements on top level" 에러 XML 에서 well-formed 텍스트 아래와 같이 정의할 수 있다. 아래 5) 번째 조건 "루트" Element는 모든 elment를 포함한다" 조건이 맞지 않아서 Parse Error가 발생한 것이다. Python 2.x 버전의 ElementTree에서는 Exceptin없이 처리하나, Python 3.8 버전에서는 Exeption을 발생시킨다. 1) 문서는 적절히 인코딩된 올바른(legal) 유니코드 문자만을 포함한다. 2) 2020. 6. 8.
[Tips] Python 에서 XML comment 처리 - Sample code 제공 1. Python으로 XML 처리할 때 comment 남겨두기 Python 에서 XML 처리할 때 많이 사용하는 ElementTree 기준으로 설명한다. Comment가 포함된 XML 파일을 ElementTree.parser() 사용해서 읽어 보면 Tree element 에 comment 는 포함되지 않는다. 만일 XML File 의 Comment 를 유지해야 하는 경우 아래와 같이 CommentedTreeBuilder class를 만들고 comment() 함수를 추가해야 한다. ElementTree 의 API 에 대한 설명은 https://docs.python.org/3.8/library/xml.etree.elementtree.html 에 자세하게 작성되어 있고, 내부 구현을 따라가보면 XML tree.. 2020. 6. 2.
[Tips] XML 에서 예약/특수 문자 처리 1. XLM 예약 문자 - "Parser Error : not well-formed" 요즘 Python 사용해서 XML 을 처리하다가 닭질(?) 내용을 정리합니다. ElementTree 로 XML 파일을 문제 없이 잘 사용하고 있다가 파이썬 코드는 변경이 없음에도 불구하고 갑자기 XML Parser에서 "Parser Error : not well-formed" 이 발생하는 경우가 있다. 에러 발생 원인은 XML 파일에 예약 문제가 포함되어 있기 때문으로 아래와 같이 문자열 변환 과정을 거쳐야 한다. #Xml 로딩하는 코드 import xml.etree.ElementTree as ET from xml.etree.ElementTree import ElementTree, Element, SubElement, .. 2020. 5. 31.