HTML 민첩성 팩 픽스 <li> 목록 순서

.net c# html html-agility-pack

문제

HTML 애자 팩을 사용하여 HTML을 유효한 XHTML로 구문 분석하여 더 큰 XML 파일로 이동하려고 노력했습니다. 그러나 대부분의 경우이 목록은 다음과 같이 형식화됩니다.

<ul>
    <li>item1
    <li>item2
    </li></li>
</ul>

내가 기대할 것 인 것에 반대하는 것에 따라 :

<ul>
    <li>item1
    <li>item2
    </li></li>
</ul>

불행히도 중첩 된 li 태그가있는이 형식은 내가 제어 할 수없는 스키마 유효성 검사를 통과하지 못합니다. 누구든지 HTML 민첩성 팩 또는 대안을 통해이 문제를 해결할 수있는 간단한 방법을 알고 있습니까? NET에서 선호.

수락 된 답변

나는 HTML Tidy라고 불리는 민첩성 팩 대신 http://tidy.sourceforge.net/을 찾았습니다 . Tidy.NET이라는 .NET 포트를 실제로 사용했습니다. http://sourceforge.net/projects/tidynet/ 이게 내 문제를 해결 한 것 같았습니다. .


인기 답변

나는 다른 사이트에서도 당신의 퀘스트를 발견했다. 구문 분석하려는 HTML은 다음과 같습니다.

<UL>
<LI>NVQ Level 3 in Fabrication and Welding Engineering
<LI>Level 3 Certificate in Engineering
<LI>Level&nbsp;2 Key Skill in Application of Number
<LI>Level&nbsp;2 Key Skill in Communication
<LI>Level&nbsp;2 Key Skill in Information Technology
<LI>Level 2 Key Skill in Working with Others
<LI>Level 2 Key Skill in Improving Own Learning &amp; Performance</LI></UL>

제가주의하는 것은 첫 번째 <li> 가 다른 <li>'s 부모 <li>'s 입니다. 하나의 aproach는 첫 번째 <li> 과 텍스트 (HAP 용 TextNode)를 가져 와서 다른 <li> 자식을 저장하고 자식 노드를 제거한 다음 부모 노드 다음에 자식 노드를 포매팅하면서 삽입하는 것입니다.
이것에서 재귀 적 방법을 취해야 할 수도 있습니다. 다음은 HTML Sanitizer 클래스에 대한 나의 솔루션입니다. HTML Agility Pack 스트립 태그가 허용 목록에 없습니다.




아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.