删除从 SQL 数据库拉取的数据中的 HTML 标记

Removing HTML Tags in Data pulled from SQL Database

提问人:nardrin 提问时间:9/8/2023 更新时间:10/5/2023 访问量:35

问:

我目前正在致力于增强/重新设计客户的网站。问题是他们数据库中的内容充满了HTML标签,因为网站之前是如何构建的。它导致新设计的布局问题。如何在不手动编辑 SQL 中的数据的情况下从数据库中删除数据中的 HTML 标记,因为我不允许更改其中的任何内容?

下面是从数据库中提取的示例数据。它有一个需要删除的 div 标签。

发生的事情是它在我的布局中添加了另一个 DIV:

<a href='Notices-Singular?rule={NoticeID}'>
    
        <h3>{NoticeTitle}</h3>
        <i>{NoticeDate}</i>
        <p><div align='justify'>Lorem Ipsum....</p><!-------Right here----->
    
</a>

顺便说一句,我正在将 Visual Studio ASP.NET 用于网站。

先谢谢你!

HTML SQL asp.net

评论

0赞 GoWiser 9/8/2023
你可以用它来做。请参阅 stackoverflow.com/questions/19878056/... - 答案还描述了替代方法。sed
0赞 nardrin 9/8/2023
将对此进行检查。谢谢!

答:

0赞 Noobie 10/5/2023 #1

选项 01:你能基于正则表达式创建一个函数,然后删除其中的所有HTML标签吗?

static string RemoveHtmlTags(string input)
    {
        // Use a regular expression to match and remove HTML tags
        return Regex.Replace(input, "<.*?>", String.Empty);
    }

只需调用此函数并获取纯文本作为回报。

string plainText = RemoveHtmlTags(htmlText);

选件 02

另一种选择是识别您获得的文本中的所有标签,并将它们放在字符串数组中,然后仅删除这些标签。

static string RemoveHtmlTags(string input)
    {
        string[] tagsToRemove = { "p", "b" };
        foreach (string tag in tagsToRemove)
        {
            string startTag = $"<{tag}>";
            string endTag = $"</{tag}>";

            // Remove the start tag and end tag, including their contents
            input = input.Replace(startTag, "").Replace(endTag, "");
        }

        return input;
    }