1

可能重复:
如何使用 HTML 敏捷包

我有下面的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>

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

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

有人有什么想法吗?

4

4 回答 4

6

您应该使用 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;
于 2012-12-19T15:27:01.200 回答
2

我有想法用来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));
于 2012-12-19T15:16:33.157 回答
0

你可以使用正则表达式

    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);
于 2012-12-19T15:13:29.593 回答
-2

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

于 2012-12-19T15:12:03.430 回答