我正在寻找最好的方法来删除 2 个 div 标签之间的所有文本,包括标签本身。
例如:
<body>
<div id="spacer"> This is a title </div>
</body>
变成:
<body>
</body>
编辑:这需要发生在服务器端(C#)
我正在寻找最好的方法来删除 2 个 div 标签之间的所有文本,包括标签本身。
例如:
<body>
<div id="spacer"> This is a title </div>
</body>
变成:
<body>
</body>
编辑:这需要发生在服务器端(C#)
您可以使用此库: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());
不确定您要实现什么,但在您的情况下隐藏或删除细节的最佳方法是 JQuery/Javascript,因为您不是指服务器端控制。
如果您只是解析字符串:-
1)解析并找到第一次出现/最后一次出现并修剪两者之间的东西。
2)XML解析将是另一种方式,我猜是一种更好的方式,因为您可以遍历整个xml以以更好的方式进行操作。
您可以使用正则表达式去除 html 标签和文本。您会在 google 中找到几个示例。