2012-07-23 2 views
1

은 가정하자 나는 XML 파일에서 다음 태그했다 :파이썬 xml.sax 오류 "잘 형성되지 <유효하지 않은 토큰>"

from xml.sax.handler import ContentHandler 
import xml.sax 

xml_path = 'windows/xml_file.xml' 

try: 
    parser = xml.sax.make_parser() 
    parser.parse(open(xml_path)) 

except (xml.sax.SAXParseException), e: 
     print "*** PARSER error: %s" % e 

Result : 
*** PARSER error: windows/xml_file.xml:4:113: not well-formed <invalid token> 

수 : 내 코드 아래

<?xml version="1.0" encoding="utf-8"?> 
<jobs> 
<job> 
<P class="Beaton"><FONT size=3><SPAN style="FONT-FAMILY: Symbol; COLOR: black; mso-ascii-font-family: 'Times New Roman'">�</SPAN><SPAN style="COLOR: black"><FONT face="Times New Roman"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Position accountability<o:p></o:p></FONT></SPAN></FONT></P> 
<P class="Beaton"><FONT size=3><SPAN style="FONT-FAMILY: Symbol; COLOR: black; mso-ascii-font-family: 'Times New Roman'">�</SPAN><SPAN style="COLOR: black"><FONT face="Times New Roman"> <SPAN style="mso-spacerun: yes">&nbsp;</SPAN>55 FTEs <o:p></o:p></FONT></SPAN></FONT></P> 
</job> 
</jobs> 

하고있다 누구나 p 태그에서 무엇이 잘못되었는지, 그리고 이런 종류의 오류를 피하는 방법을 알려주십시오.

답변

0

아마도 FONT 태그에 문제가있는 것 같습니다. size 속성의 값을 인용 부호로 묶어야합니다. 그렇지 않으면 단순히 유효한 XML이 아닙니다.

유효한 XML 엔티티가 아닌 &nbsp;과 관련된 문제가 발생할 수도 있습니다 (XHTML에서는 유효 함). 또한 <jobs> 태그가 제대로 닫히지 않았습니다. 마지막 줄은 </jobs>이어야합니다.

일반적으로 XML 파일을 읽는 데 문제가있는 경우 가장 먼저 XML 파일의 형식이 올바른지 확인해야합니다. 가능한 한 가지 방법은 W3C validator에 입력하는 것입니다.

+0

ur 답장과 ur 권리를 주셔서 감사하지만, 다른 태그 (나는 여기에 붙여 넣기 dint)에 대해 클래스 속성과 크기 속성의 값은 따옴표가 붙지 않지만, 잘 작동한다고해서 혼란스럽고 여기에 묻습니다. –

+0

오류는 '?'입니다. 위의 p 태그에있는 문자는 정상적인 것과 다른 것을 찾고 있기 때문에? 태그 (속성의 모든 값이 인용되는 경우 가정) –

+0

XML의 속성 값은 반드시 인용되어야합니다. 구문 분석기는 인용 부호를 사용하지 않을 수도 있지만 XML을 유효하게하지는 않습니다. 나는 너의 "?"에 대해서 모른다. 문자를 제거하고 파서가 허용하는지 확인하십시오. 또한, 귀하의 '' 태그가 제대로 닫히지 않은 것을 확인했습니다. –

관련 문제