用于检查字符是否为标记的C#方法

时间:2011-04-04 07:40:04

标签: c# .net xml

如果给定字符是XML标记字符,.NET框架中是否有任何方法返回true?也就是说,其中一个字符'"<>_&和其他可能存在的字符。

我知道我也可以进行简单的字符串搜索,但是想知道是否存在不依赖于手动输入字符的内置方法。

4 个答案:

答案 0 :(得分:4)

您可以结帐following KB article

答案 1 :(得分:4)

我不确定术语“XML标记字符”(或者更确切地说是用于检测这些字符的上下文无关功能)非常有意义,因为您列出的某些字符仅具有特殊含义,具体取决于它们出现的上下文(例如'",如果它们出现在标记之外,则为普通字符。)

除此之外,您总是可以编写自己的函数:

bool IsMarkupCharacter(char ch)
{
    switch (ch)
    {
        case '\'':
        case '\"':
        case '<':
        case '>':
        case '&':
            return true;

        default:
            return false;
    }
}

当然,您需要根据XML规范检查这一点,以检查它是否真的完整。 (顺便说一句,我没有在你的列表中包含_;它对XML没有任何特殊意义,AFAIK。)

答案 2 :(得分:3)

您也可以使用此代码

const string XMLCHARS = "'\"\\<>&";


if(XMLCHARS.Contains(c))
{
 --
}

答案 3 :(得分:1)

您可以使用扩展程序

public static class CharExtension
{
    public static bool IsXmlMarkup(this char charecter)
    {
        if(charecter == '\'' || charecter == '\"' || e.t.c) 
            return true;

        return false;
    }
}

然后只需使用

char c = '\'';
var res = c.IsXmlMarkup();