如何从 html 中删除特定标签 [重复]

Posted

技术标签:

【中文标题】如何从 html 中删除特定标签 [重复]【英文标题】:how can I remove with specific tags from html [duplicate] 【发布时间】:2012-12-06 23:22:48 【问题描述】:

可能重复:How to use html Agility pack

我有下面的html代码:

<div><span class="help">This is text.</span>Hello, this is text.</div>
<div>I have a question.<span class="help">Hi</span></div>

现在,我想使用 C# 删除 &lt;span class="help"&gt;&lt;/span&gt; 之间的文本。所以,我只想离开

<div>Hello, this is text.</div>
<div>I have a question.</div>

有人知道吗?

【问题讨论】:

【参考方案1】:

获取包含 runat="server" 的元素,以便可以从代码隐藏中访问它们,然后在合适时尝试通过其 id 名称获取元素并执行以下任一操作 element.innerHTML = "";或 element.innerText = "";

【讨论】:

很抱歉,但你如何 -1 评论?这就是你想做的事 感谢您的评论。但正如你所见,我的意思是处理 html 字符串。 那么你应该在描述中这么说。不要指望每个人都只是猜测你想要什么。 对不起兄弟~都是我的错。请不要生我的气。 Drakoumel,你有一种非常激进和防守的倾向。建议进行实际交流。【参考方案2】:

你可以使用正则表达式

    string val = @"<div><span class=""help"">This is text.</span>Hello, this is text.</div><div>I have a question.<span class=""help"">Hi</span></div>";
        Regex reg = new Regex("<span .+?</span>", RegexOptions.IgnoreCase | RegexOptions.Singleline);
        string ret = reg.Replace(val, "");
        Debug.WriteLine(ret);

【讨论】:

-1:不要使用正则表达式来解析 html 为什么?我认为它比解析 html 更快。 ***.com/questions/1732348/…【参考方案3】:

我有想法使用Html Agility Pack 来解析html。

HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(html);  // this is your string
var divs = doc.DocumentNode.Elements("div")
      .Select(div => string.Format("<div>0</div>", div.LastChild.InnerText));

【讨论】:

【参考方案4】:

您应该使用Html Agility Pack 来处理html。

string text = @"<div><span class=""help"">This is text.</span>Hello, this is text.      </div>
                <div>I have a question.<span class=""help"">Hi</span></div>";
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(text);
var nodes = doc.DocumentNode.SelectNodes("//span[@class='help']");
foreach( HtmlNode node in nodes)

   node.Remove();
 
String result = doc.DocumentNode.InnerHtml;

【讨论】:

非常感谢。效果很好。

以上是关于如何从 html 中删除特定标签 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

从html标签jquery获取特定文本[重复]

如何使用c#从文本中删除html标签[重复]

如何在Java中删除HTML标签[重复]

使用java从字符串中删除html标签[重复]

删除特定div中的标签“ a” [重复]

如何从列表中删除一个特定元素[重复]