2009-06-15 1 views
6

XMLDocument 객체에 변형 된 HTML을로드하려고 시도했지만 XMLExceptions가 실패합니다. 추가 열기/닫기 태그 및 변형 된 XML 태그 (예 : <img >)가 있기 때문에 실패합니다. <img />조작 된 XML 구문

데이터의 모든 오류를 XML로 구문 분석하려면 어떻게해야합니까? 이러한 오류를 수정하기 위해 구문 분석 전에 적용 할 수있는 XML 유효성 검사기가 있습니까? 아니면 구문 분석 할 수있는 모든 구문 분석 예외 처리 할 것이라고?

+0

내가 기형의 생각을 가지고 있다면 예외를 처리하고 시도 할 것입니다 ... – abmv

+0

만약 형체가 형편 없으면 울화 (XMLException)를 던지고 전혀 구문 분석하지 않습니다! childNodes가 없습니다. –

+0

http://stackoverflow.com/questions/28909882/dealing-with-malformed-xml – Sobrique

답변

14

HTML Agility Pack를 HTML과 같은 느슨한 마크 업을 수용하도록 설계되지 않습니다 html, xhtml보다는 오히려, 그리고 용서하고 있습니다. XmlDocument을 사용한 경우 개체 모델이 익숙합니다.

+1

이것은 끝 태그가없는 노드 트리가 포함 된 XML에서 실제로 잘 작동했습니다. 제안 해 주셔서 감사합니다! –

0

당신이하려는 것은 매우 어렵습니다. XML은 엄격하고 HTML은 그렇지 않기 때문에 XML 파서를 사용하여 HTML을 파싱 할 수 없습니다. 해당 HTML이 호환되는 XHTML (HTML을 XML로 사용) 인 경우 XML 파서는 문제없이 HTML을 구문 분석합니다.

실제로 HTML에 XML 파서를 사용하려는 경우 HTML에서 XHTML 로의 변환이 있는지 확인할 수 있습니다. 내가 잘못된 XML을 처리하는 XML 파서를 충족하기 위해 아직 즉

은 ... 그들은 구문 분석 (:) 너무 좋은 이유)

2

this question에 대한 답변을 확인하시기 바랍니다.

기본적으로 beautifulsoup의 .NET 포트와 HTML 민첩성 팩 사이에 방법이 있습니다.

1

이 수준의 조작 된 구조를 가진 XmlDocument를 빌드 할 수는 없습니다. XmlDocument (내 지식)는 xml 내용이 적절한 중첩 및 종료 구문을 준수하도록 요구합니다.

그러나 XmlReader로 대신 구문 분석 할 수 있다고 생각됩니다. 특정 심각한 오류가 발생하더라도 예외가 발생할 수 있지만 MSDN 문서에 따르면 오류의 위치를 ​​적어도 공개 할 수 있습니다.

HTML 만 취급하는 경우 HTML Agility Pack이 있으며 용도에 따라 다를 수 있습니다.

0

XmlDocument에 잘못된 형식의 XML을로드 할 수 없습니다. 그는 특정 요구 ONT 따라 CodePlex의

1

Html Agility Pack 밖으로

확인, 당신은 다음, 정리에 HTML Tidy에게 문서를 사용하는 XMLDocument 객체를 사용하여 가져올 수 있습니다.