C\#XML 문자열 은 특수 문자 의 처리 변환 방법 소결 을 포함 합 니 다.
3562 단어 C#XML 문자열 은?특수 문자
다음은 몇 개의 특수 문자 의 대응 실체 입 니 다.
<
<
작은 번호
>
>
번호 보다 크다
&
&
화해시키다
'
'
작은 따옴표
"
"
작은 따옴표
C\#에서 C\#가 제공 하 는 방법 을 직접 호출 하고 저장 하면 자동 으로 특수 문 자 를 대응 하 는 실체 로 변환 합 니 다.
string s =System.Security.SecurityElement.Escape(s);
혹은
내용 을중,예 를 들 면,CDATA 의 내용 은 XmlDocument 분석 시 자동 으로 무 시 됩 니 다.
만약 많은 지역 에 특수 한 내용 이 있다 면 아래 의 코드 를 참고 하여 함 수 를 통 해 교 체 를 실현 할 수 있다.
사실 매우 간단 합 니 다.아래 의 이 함수 만 사용 하면 XML 문자열 의 특수 문 자 를 판단 하고 변환 할 수 있 습 니 다.
핵심 코드
/// <summary>
/// Turns a string into a properly XML Encoded string.
/// Uses simple string replacement.
///
/// Also see XmlUtils.XmlString() which uses XElement
/// to handle additional extended characters.
/// </summary>
/// <param name="text">Plain text to convert to XML Encoded string</param>
/// <param name="isAttribute">
/// If true encodes single and double quotes, CRLF and tabs.
/// When embedding element values quotes don't need to be encoded.
/// When embedding attributes quotes need to be encoded.
/// </param>
/// <returns>XML encoded string</returns>
/// <exception cref="InvalidOperationException">Invalid character in XML string</exception>
public static string XmlString(string text, bool isAttribute = false)
{
var sb = new StringBuilder(text.Length);
foreach (var chr in text)
{
if (chr == '<')
sb.Append("<");
else if (chr == '>')
sb.Append(">");
else if (chr == '&')
sb.Append("&");
// special handling for quotes
else if (isAttribute && chr == '\"')
sb.Append(""");
else if (isAttribute && chr == '\'')
sb.Append("'");
// Legal sub-chr32 characters
else if (chr == '
')
sb.Append(isAttribute ? "
" : "
");
else if (chr == '\r')
sb.Append(isAttribute ? "
" : "\r");
else if (chr == '\t')
sb.Append(isAttribute ? "	" : "\t");
else
{
if (chr < 32)
throw new InvalidOperationException("Invalid character in Xml String. Chr " +
Convert.ToInt16(chr) + " is illegal.");
sb.Append(chr);
}
}
return sb.ToString();
}
XML 에서 특수 문자 로 보 이 는 문 자 는 많 지 않 습 니 다.세 개 만 있 습 니 다.<,&,>이 므 로 이 세 글자 만 바 꾸 면 됩 니 다.작은 따옴표 와 줄 바 꿈 자 를 바 꿀 수도 있 고 바 꾸 지 않 아 도 됩 니 다.사용 방법:
1.우선 네 임 스페이스 System.Text 를 가 져 옵 니 다.StringBuilder 방법 을 써 야 하기 때 문 입 니 다.
2.문자열 을 판단 하고 변환 할 때 함수 XmlString()을 직접 사용 합 니 다.예 를 들 어:
string sText = XmlString(sText);
작은 따옴표 와 줄 바 꿈 자 를 출력 하려 면 이 몇 개의 문 자 를 바 꾸 려 면 함 수 를 이렇게 사용 해 야 합 니 다.
string sText = XmlString(sText, true);
총결산
상기 방법 을 사용 하여 웹 페이지 에 XML 형식 문자열 을 출력 하거나 사용 가능 한 XML 파일 을 만 들 면 더 이상 문제 가 없 을 것 입 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
WebView2를 Visual Studio 2017 Express에서 사용할 수 있을 때까지Evergreen .Net Framework SDK 4.8 VisualStudio2017에서 NuGet을 사용하기 때문에 패키지 관리 방법을 packages.config 대신 PackageReference를 사용해야...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.