2009-04-02 2 views
0

XML 파일에서 불필요하다고 생각되는 태그를 제거했습니다. 이제 구문 분석을 시도 할 때 내 SAX 파서가 오류를 발생시키고 파일이 올바른 형식이 아니라고합니다. 그러나 모든 시작 태그에는 종료 태그가 있습니다. 파일의 여는 태그에는 XML 스키마에 대한 링크가 있습니다. 이것이 문제의 원인이 될 수 있습니까? 그렇다면 어떻게 수정해야합니까?Python SAX 파서가 XML 파일의 형식이 올바르지 않다고 말합니다.

편집 : 문제가 발견 된 것 같습니다. 내 캐릭터 데이터에 "& lt"및 "& gt"문자가 포함되어 있습니다 (아마 html 태그에서 가져온 것입니다). 파싱 ​​된 후, 이들은 "<"및 ">"문자로 변환되어 SAX 파서를 방해합니다. 어떤 일이 일어나지 않도록 방지 할 방법이 있습니까?

+0

http://validator.w3.org/ – bernie

+0

XML 스키마에 대한 여는 태그 링크는 네임 스페이스 일 수 있습니다. 당신은 그것을 떠나고 싶어 할 것입니다. – bernie

+0

SAX에서 실제 오류를 제공하는 데 도움이 될 수 있습니다. –

답변

1

sax 파서가 에 대한 세부 정보를 제공하지 않습니까?은 올바른 형식이 아니라고 생각합니까?

파일을 XML 편집기로로드하여 확인해 보셨습니까? 다른 XML 파서가이를 수용합니까?

XML 형식이 올바른지 여부에 관계없이 스키마가 변경되면 안됩니다. 이 유효하거나 아니면 일지 여부는 바뀔 수 있습니다. 조금 더의 wikipedia entry for XML well-formedness, 또는 더 많은 세부 사항 :

편집에 대한 XML specs를 참조하십시오 : 텍스트에서 "&"를 표현하기 위해, 당신은 그래서 &amp;

로 탈출해야합니다

&lt 

&amp;lt 

(당신이 정말로 앰퍼샌드, L, t을 원하는 가정)을해야한다.

+0

나는 그 파일을 문제가있는 곳에서 검사했고, 단지 문자 데이터 일 뿐이었다. 불행히도, 파일은 너무 커서 표준 편집기에서 작업 할 수 없습니다. 루트 태그가 있고 열기 및 닫기 태그가 있습니다. 이것은 수수께끼로 남아 있습니다. –

+0

DOM 파서가 아닌 다른 파서 (XmlReader.NET, 또는 아마도 SAX를 자바로) 거기서 작동하는지 또는 아마도 더 유용한 정보를 제공하는지 확인하십시오. –

+0

"너무 큼"? 막연한 단어 사용을 중지하십시오. 얼마나 많은 바이트입니까? 그것은 심각한 편집기를 전환 할 시간이있을 수 있습니다 ... – bortzmeyer

2

나는이 태그를 다시 넣고 여전히 작동하는지 확인하는 것이 좋습니다. 그런 다음, 그들을 꺼내고 싶다면, 그것이 깨질 때까지 한 번에 하나씩하십시오.

그러나 나는 그들을 꺼내는 지혜에 의문을 제기합니다. XML 파일이라면 더 잘 이해해야합니다. 제 3 자 XML 파일이라면, 더 잘 이해할 때까지는 실제로 다루지 않아야합니다 :-).

0

또 다른 XML 구문 분석기를 사용하여 구문 분석을 시도하는 것이 좋습니다. 그것은 그것이 틀린 문서인지 또는 파서인지 여부에 대한 표시를 제공해야합니다.

또한 실제 오류 메시지가 유용 할 수 있습니다. 예를 들어 꽤 일반적인 문제 중 하나는 xml 선언 (사용되는 경우 선택 사항)이 맨 앞에 있어야한다는 것입니다. 앞에 공백을 넣을 수도 없습니다.

0

XML 편집기가없는 경우 Firefox에로드 할 수 있습니다. Firefox가 오류를 표시합니다.

관련 문제