Как очистить теги HTML с помощью C # - PullRequest
23 голосов
/ 24 июня 2009

Например:

<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!!!

Ответы [ 6 ]

31 голосов
/ 24 июня 2009

HTML Agility Pack :

    HtmlDocument doc = new HtmlDocument();
    doc.LoadHtml(html);
    string s = doc.DocumentNode.SelectSingleNode("//body").InnerText;
16 голосов
/ 14 декабря 2009

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

public string Strip(string text)
{
    return Regex.Replace(text, @"<(.|\n)*?>", string.Empty);
}
1 голос
/ 24 июня 2009

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

Вот учебник , чтобы начать.

0 голосов
/ 25 мая 2010

Вы можете начать с этой простой функции ниже. Отказ от ответственности: этот код подходит для базового 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;        
    }
0 голосов
/ 24 июня 2009

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

0 голосов
/ 24 июня 2009

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...