Подтвердить что ты не робот

Как очистить теги HTML с помощью С#

Например:

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>title</title>
</head>
<body>
    <a href="aaa.asp?id=1"> I want to get this text </a>
    <div>
        <h1>this is my want!!</h1>
        <b>this is my want!!!</b>
    </div>
</body>
</html>

и результат:

 I want to get this text 
this is my want!!
this is my want!!!
4b9b3361

Ответ 1

HTML Agility Pack:

    HtmlDocument doc = new HtmlDocument();
    doc.LoadHtml(html);
    string s = doc.DocumentNode.SelectSingleNode("//body").InnerText;

Ответ 2

Используйте эту функцию...

public string Strip(string text)
{
    return Regex.Replace(text, @"<(.|\n)*?>", string.Empty);
}

Ответ 3

Я бы рекомендовал использовать что-то вроде HTMLTidy.

Вот учебник об этом, чтобы вы начали.

Ответ 4

Почему вы хотите сделать его серверным?

Для этого вам нужно создать элемент контейнера runat="server", а затем взять innerText элемента.

Вы можете сделать то же самое в javascript без создания элемента runat = "server"

Ответ 5

Если вы просто хотите удалить теги html, используйте регулярное выражение, которое удаляет что-либо между "<" и " > ".

Ответ 6

Вы можете начать с этой простой функции ниже. Отказ от ответственности: этот код подходит для базового HTML, но не будет обрабатывать все допустимые ситуации в HTML и крайние случаи. Примером могут служить теги в кавычках. Преимущество этого кода заключается в том, что вы можете легко выполнить выполнение в отладчике, и его можно легко модифицировать, чтобы соответствовать конкретным для вас случаям кросс.

public static string RemoveTags(string html)
    {
        string returnStr = "";
        bool insideTag = false;
        for (int i = 0; i < html.Length; ++i)
        {
            char c = html[i];
            if (c == '<')    
                insideTag = true;
            if (!insideTag)
                returnStr += c;
            if (c == '>')         
                insideTag = false;
        }
        return returnStr;        
    }