2013-08-08 2 views
3

xml에있는 특수 문자를 표시하려고합니다. 다음과 같은 조건을 지정했습니다 :xml 특수 문자 표시

 if (text.Contains('<')) 
     { 
      text.Replace("<", "&lt;"); 
     } 
     if (text.Contains('>')) 
     { 
      text.Replace(">", " &gt;"); 
     } 
     if (text.Contains('&')) 
     { 
      text.Replace("&", " &amp;"); 
     } 
     if (text.Contains('>')) 
     { 
      text.Replace("", "&quot;"); 
     } 

그러나이 문자는 분명합니다.
누군가 이러한 특수 문자를 어떻게 표시 할 수 있습니까? ,

result = result.Replace(...); 

을하지만 : 당신이 필요로하는, 그래서 문자열, .NET에서 불변 -

+6

디스플레이 란 무엇입니까? 그리고 네 번째로, 함께 작업중인 XML 예제를 게시 할 수 있습니까? – Tim

+0

@Tim : 런타임에 작성중인 파워 포인트 프리젠 테이션에 표시하고 싶습니다. – Nitish

+0

XML 파일에 '<' and '>'문자가 포함되어있어 파일이 유효하지 않습니다. 특정 문자를 표시하려면 루프를 사용하여 모든 속성을 검사하는 쿼리를 수행하거나 파일을 텍스트 파일로 엽니 다. – glautrou

답변

6

당신은 SecurityElement.Escape

var result = SecurityElement.Escape(text); 
+1

OP가 보안과 관련하여 어떤 조치를 취하고 있다는 징후는 없습니다. 이것이 필요한 일을하는 동안, 나는 그것을하는 가장 깨끗한 방법이라고 생각하지 않습니다. –

9

귀하의 즉시 문제는 당신이 string.Replace의 결과를 무시하고 있다는 것입니다 필요 XML API를 대신 사용하십시오. 당신이 <을 포함하는 요소와 XML 문서를 만들려면 예를 들어, 당신은 사용할 수 있습니다

var doc = new XDocument(new XElement("root", "<")); 
Console.WriteLine(doc); 

당신이 얻을 수 있도록 자동으로 출력에 탈출됩니다

<root>&lt;</root> 

당신에게 꽤 많이 스스로 XML 처리 - XML ​​API는 친구이고 LINQ to XML은 매우입니다.