2016-12-09 5 views
1

내가 얻을 참조ElementTree.ParseError : 잘못된 문자 번호

ElementTree.ParseError: reference to invalid character number

는 A 태그 값으로 다음이 포함되어 XML 구문 분석 :

respXML = httpResponse.content 
#also possible respXML = httpResponse.content.decode("utf-8") 
#but both get the same error 

#this line throws the error 
respRoot = ET.fromstring(respXML) 

: locat

내 코드의 모양을 겉으로보기에 잘못된 문자 숫자에 대해 파서를 방탄 처리하는 방법은 무엇입니까?

+0

''은 제어 문자 START HEADING을 나타냅니다. XML 파서가 해당 문자를 발견하면 오류가 발생합니다. 이 문자는 XML 1.0 (https://www.w3.org/TR/xml/#charsets)에서 금지되어 있습니다. – mzjn

답변

0

html처럼 보입니다. 입력 문자열에서 html 패키지를 사용하기 전에 참조하십시오. https://pypi.python.org/pypi/html

>>> import html 
>>> test = "locat" 
>>> html.unescape(test) 
'local' 

그런 다음 그 등가물에 몇 가지 알려진 유니 코드 문자를 변환합니다. 예 :

“ => " 
’ => ' 
... 

마지막으로 이중 공백을 단일 공백으로 바꿉니다.

모든 것을 성공적으로 처리하는 것이 꽤 번거롭기 때문에 특정 예외를 배치하고 파일에 불량 줄을 쓰는 것이 좋습니다. 규칙을 추가하여 출력 파일의 각 오류를 하나씩 해결합니다.

행운을 빈다.