2010-08-02 4 views
1

내가XML에 정규 표현식 포함?

내가 XML 파서는 여러 키 값 (즉, < 및 &)와 내가 이해에서에 불평 것을 알고 정규 표현식은 XML에서 발생할 수있는 상황을 설정하기 위해 노력하고있어, 수 속성 CDATA 태그를 지원하지 않습니다.

그러나 lookbehind는 < 문자를 사용하기 때문에 상황이 더욱 어려워집니다.

이 문제를 해결하는 가장 좋은 방법은 무엇입니까? 나는 이것들을 html에 상응하는 것부터 먼저 포맷팅하고 그것을 사용할 때 디코딩하는 것으로 생각 해왔다. 그것이 효과가있는 것처럼 보이지만 더 영리한 것을 기대하고있었습니다.

html로 형식을 지정하고 디코딩하는 것 외에 더 이상 영리한 방법이 있습니까?

답변

1

요소에 넣지 않는 이유는 무엇입니까? 제대로 인코딩하거나 CDATA 태그에 넣으십시오. .NET XML API를 사용하고 문자열 조작이 아닌 .NET을 사용하면 인코딩이 수행됩니다.

+0

나는 이것을 위해 CDATA 태그를 사용합니다. XML을 읽기 쉽게 유지합니다. –

0

"HTML로 서식 지정하기"는 사용자가하는 일이 아닙니다. 당신은 XML 파서이 구문을 분석 할 때

<something regex=".*&lt;&amp;whatever">...</something> 

이, 정규식 속성으로 돌아올 것 "* < & 무엇이든."당신은 어떤 작업을 수행 할 필요가 없습니다 : XML이 요구하는대로 문자를 인용 할 것 디코딩. XML 구문 분석기는 이러한 엔티티를 처리하는 방법을 알고 있습니다.

은 물론,이 요소를 사용하거나하는 CDATA가 옵션이 아닌 경우

0

System.Web.HttpUtility.HtmlAttributeEncode() 기능은 당신을 위해 트릭을 할 것입니다 ... 정규식과 XML을 혼합 어쨌든 읽을 수있는 결과를 가지고 도전이 될 수 있습니다.