2008-09-23 2 views
0

누구나 해냈습니까? 기본적으로 html, h2, em 등의 기본 태그를 유지하여 html을 사용하고 싶습니다. img의 모든 비 http 주소와 태그를 지 웁니다. HTMLEncode는 다른 모든 태그에 적용됩니다.당신은 어떻게 html 민첩성 팩을 사용하여 htmlencode합니까?

HTML 인코딩 부분에 붙어 있습니다. 나는 당신이 "node.ParentNode.RemoveChild (node);"노드를 제거하는 것을 알고있다. 여기서 node는 HtmlNode 클래스의 객체입니다. 대신 노드를 제거하는 대신 HTMLEncode 싶어요.

답변

1

원하지 않는 요소를 나타내는 노드를 제거해야합니다. 그런 다음 인코딩 된 HTML을 텍스트 노드로 다시 추가해야합니다.

당신이 버려야 할 요소의 자식을 처리하지 않으려면, 당신은 단지 outerHTML에 사용할 수 있어야 ... 이런 식으로 뭔가를 작동 할 수 있습니다 :

node.AppendChild(new HtmlTextNode { Text = HttpUtility.HtmlEncode(nodeToDelete.OuterHtml) }); 
0

대답 위에 꽤 많이 다룹니다. 하지만 한 가지 더 추가해야합니다.

특정 노드 만 변경하고 싶지는 않지만 위의 코드는 if 문으로 래핑 된 메서드입니다 (HtmlEncode로하려는 태그인지 확인하십시오). 더 중요한 것은 Agility Pack이 서수로 노드를 노출하지 않기 때문에 전체 문서를 반복 할 수 없다는 것입니다. 재귀가 가장 쉬운 방법입니다. 당신은 이미 이것을 알고있을 것입니다 ...

나는 비슷한 문제를 다루었으며 사용을 환영하는 어떤 쉘 코드 (C#)를 가지고 있습니다 : http://dev.forrestcroce.com/normalizer-of-web-pages-qualifier-of-urls/2008-12-09/

관련 문제