0

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

例如:

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

变成:

<body>
</body>

编辑:这需要发生在服务器端(C#)

4

3 回答 3

1

您可以使用此库: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());
于 2013-01-30T03:46:51.717 回答
0

不确定您要实现什么,但在您的情况下隐藏或删除细节的最佳方法是 JQuery/Javascript,因为您不是指服务器端控制。

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

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

2)XML解析将是另一种方式,我猜是一种更好的方式,因为您可以遍历整个xml以以更好的方式进行操作。

于 2013-01-30T03:54:48.363 回答
0

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

于 2013-01-30T13:12:33.267 回答