2009-07-24 4 views
2

XmlTextWriter을 사용하여 일부 데이터를 직렬화하고 유지합니다. 일련 번호를 사용하는 필드 중 일부는 사용자 입력 (예 : 사용자 이름)을 기반으로합니다. 오늘 저는 방법을 XmlTextWriter으로 사용합니다.C# : XML 텍스트 값을 XmlTextWriter로 살균 하시겠습니까?

제 질문은 : WriteElementString의 두 번째 매개 변수는 쓸 텍스트 값입니다. 서면으로 작성하기 전에 어떻게 위생 처리 할 수 ​​있습니까?

예제 코드 :

XmlTextWriter writer = new XmlTextWriter("filename.xml", null); 

writer.WriteStartElement("User"); 
writer.WriteElementString("Username", inputUserName); 
writer.WriteElementString("Email", inputEmail); 
writer.WriteEndElement(); 

writer.Close(); 

변수 inputUserNameinputEmail는 사용자가 입력, 및 I/살균 작성하기 전에 그들을 탈출하고 싶습니다.

이 작업을 수행하는 가장 좋은 방법은 무엇입니까?

답변

3

정확히 거기에서 탈출해야합니까? WriteElementString 모두가 이미 XML에 필요한 이스케이프 할 것 (즉 & ->&amp;, < ->&lt; 등) 당신은 안전 안전한 될 것 CDATA 이러한 값은 당신이 XML로 할 수있는 수

+0

그래서 WriteElementString은 완전히 안전합니까? (당신이 그것을 말할 때 의미가있다, 나는 단지 그것이 사실이라는 것을 알지 못했다) –

+0

출력이 유효한 XML이 될 것이고 그것을 다시 읽을 때 당신은 그것을 보장한다는 것이 "안전하다"는 의미이다. 같은 문자열을 얻는다. –

-2

.

먼저 RegEx 또는 다른 인증을 통해 값을 확인해야합니다.

+0

왜 downvote? CDATA는 여러분이 원하는 모든 것을 포함하는 XML을 유효하게 유지하는 가장 안전한 방법입니까? –

+0

CDATA는 전혀 중요하지 않습니다. 그것은 그것을 벗어날 필요없이 텍스트를 작성하는 단지 방법입니다. OP가 사용하는 코드는 모든 것을 올바르게 벗어납니다. –

+0

CDATA로 작성되어 이스케이프되지 않지만 제대로 작동합니다. –

관련 문제