删除div标签之间的所有文本(包括标签)

时间:2013-01-30 03:33:19

标签: c# .net asp.net-mvc-4

我正在寻找删除2个div标签之间所有文本的最佳方法,包括标签本身。

例如:

<body>
<div id="spacer"> This is a title </div>
</body>

变为:

<body>
</body>

编辑:这需要在服务器端进行(C#)

3 个答案:

答案 0 :(得分:1)

您可以使用此lib:http://htmlagilitypack.codeplex.com/在服务器端进行操作,下面是您的案例示例:

var doc = new HtmlDocument();
doc.LoadHtml("<body><div id=\"spacer\"> This is a title </div></body>");
doc.GetElementbyId("spacer").Remove();

var stream = new StringWriter();
doc.Save(stream);

var result = stream.ToString();

修改

您还可以使用xpath选择所需的任何节点:

var nodes = doc.DocumentNode.SelectNodes("body/div");
nodes.ToList().ForEach(node => node.Remove());

答案 1 :(得分:0)

不确定您要实现的目标,但在您的情况下隐藏或删除详细信息的最佳方法是JQuery / Javascript,因为您没有引用服务器端控件。

如果您只是解析字符串: -

1)解析并找到第一次出现/最后出现并在两者之间修剪。

2)XML解析将是另一种方式,我猜是更好的方法,因为你可以在整个xml中迭代以更好的方式进行操作。

答案 2 :(得分:0)

您可以使用正则表达式去除html标记和文本。你会在google中找到几个例子。