HTML 민첩성 팩을 XML로 변환 <script> corruption

c# html-agility-pack linq-to-xml

문제

나는 <script> 가있는 HTML 파일을 가지고있다.

<html>
   <script type="application/custom+xml">
   <my><xml><goes><here/></goes></xml></my>
   </script>
</html>

HTML Agility Pack으로 구문 분석 한 다음 XML로 변환합니다.

<html>
   <script type="application/custom+xml">
   <my><xml><goes><here/></goes></xml></my>
   </script>
</html>

그런 다음 LINQ-to-XML을 사용하여 내 XML을 CDATA로 포함해야하는 script 태그의 내용을보고 싶습니다. 그러나 HTML 민첩성 팩은 어떻게 든 그것을 엉망으로 만들고, 나는이 도피 된 XML로 끝납니다 :

<html>
   <script type="application/custom+xml">
   <my><xml><goes><here/></goes></xml></my>
   </script>
</html>

누구든지 script 태그의 내용을 벗어나지 않도록 HTML 민첩성 팩에 어떻게 알 수 있습니까?

수락 된 답변

그것은 매우 쉽습니다. 기본적으로 AgilityPack은 스크립트 태그 내용을 CData로 처리하도록 설정되어 있습니다.이 작업은 HtmlNode 클래스의 정적 생성자에서 다음과 같이 수행됩니다.

ElementsFlags.Add("script", HtmlElementFlag.CData);

이 코드를 변경하려면 AgilityPack을 수정할 필요가 없습니다. 코드 전에 한 번만 필요하거나 프로그램이 시작될 때 한 번만 필요합니다.

ElementsFlags.Add("script", HtmlElementFlag.CData);

코드 바로 앞에 코드를 추가하면됩니다.




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