2010-07-08 3 views
1

XAttribute의 Value 속성에 전달하는 값을 쉽게 sanitize 할 수 있습니다.XML 속성 값 sanitize

+1

"살균"을 정의하면 유용한 대답을 얻을 수 있습니다. – spender

+0

글쎄 기본적으로 그것은 '/ 0'특정 문자를 받아 들일 수 없습니다 저장에 대한 오류 던지고. 내가 받아 들일 수없는 다른 문자가 있다고 가정하고, 그래서 그들을 제거하는 방법이 있는지 궁금 해서요. – Dested

+1

아마 실제 질문에 그 정보를 추가하십시오 ... –

답변

1

다음은 확장 방법으로 문제를 해결할 수 있습니다./0은 XML에서 허용되지 않습니다. 다른 문자도 허용되지 않는지 확실하지 않지만 믿지 않습니다. 아마 ' '에서 시작하는 것이 가장 좋습니다.

void Main() 
{ 

    Console.WriteLine("123\0394".XmlSanitize()); 

} 

public static class XmlHelpers 
{ 
    public static string XmlSanitize(this string badString) 
    { 
     return new String(badString.Where(c => c >=' ').ToArray()); 
    } 
} 
1

당신이 시도 할 수 : 이것은 XML 속성 값을 같이 유효하지 않은 문자를 이스케이프합니다

string value = "[email protected]#$%^&*()123%^&*([email protected]#\(*!&10987" 
value = System.Security.SecurityElement.Escape(value); 

.

+0

좋은,하지만 \ 0 없애 버리지 않습니다. – spender