2009-02-05 3 views
3

문자열을 구문 분석하고 특정 XHTML 태그 및 속성을 허용하려면 확장 가능한 클래스가 필요합니다. 주어진 문자열에 유효하지 않은 태그가 포함되어있는 경우 입력 된 페이지에 표시되도록 인코딩됩니다. 사용자 입력을 잃어 버리지 않을 것입니다.XHTML 태그/속성을 허용/금지하는 성숙한 Robust .NET 클래스

감사합니다.

+0

나는 이것을위한 라이브러리가 없다는 것에 매우 놀랐다. –

답변

0

XHTML은 유효한 XML이므로 모든 XML 도구를 사용하여 쉽게 처리 할 수 ​​있습니다. XmlReader 인스턴스를 사용하여 XML 노드를 읽은 다음 출력에 포함하지 않으려는 태그를 발견하면 출력의 CDATA 섹션에 포함하기 만하면됩니다.

여기서도 XSLT 변환을 사용할 수 있지만 CDATA 섹션에 노드를 삽입 할 수 있는지 여부는 알 수 없습니다.

+0

사용자가 주석 등을 입력하게됩니다. 그들의 메시지에 링크와 다른 태그를 추가 할 수있게하고 싶습니다. 사용자 그룹은 지능적이며 HTML을 알고 있습니다. 어떤 제안? –

+0

@Josh Stodola : 정확히 말했듯이, XML 문서를 살펴보고 걸 으면서 원하지 않는 태그를 걸러 낼 수 있습니다. XHTML은 XML이므로 조각을 처리하려는 XML 도구를 사용할 수 있습니다. – casperOne

+0

이 설정으로 잘못된 마크 업을 테스트했는지 확인하십시오. 대부분의 XML 라이브러리는 유효하지 않은 XML이있을 때 예외를 던집니다 (사용자에게있어 허용 될 수 있음). – AaronSieb

1

HtmlAgilityPack은 잘 작동하며 잘못 구성된 HTML도 처리합니다.

+0

"잘못 구성된 HTML"이 내 질문과 관련이 있습니까? 허용 된 태그 목록이 필요합니다. 나머지는 인코딩해야합니다. HtmlAgilityPack이 도움이되지 않습니다. –

0

SGMLReader 프로젝트는 또한 사용자 생성 마크 업을 처리하는 데 매우 유용한 라이브러리입니다. (모든 스키마는 XHTML이 아님)

예 : 1 단계 "클리너"로 사용하여 텍스트 상자에 입력 한 마크 업을 구문 분석하고 유효한 XML로 변환합니다.