[英]What's the best way to strip a href from a fragment of html code?
我有以下html片段:
<p><a href=\"/es-es/Documents/test.txt\"><img class=\"ms-asset-icon ms-rtePosition-4\" src=\"/_layouts/15/images/ictxt.gif\" alt=\"\" />test.txt</a><a href=\"/es-es/Documents/test%20-%20Copy.txt\"><img width=\"16\" height=\"16\" class=\"ms-asset-icon ms-rtePosition-4\" src=\"/_layouts/15/images/ictxt.gif\" alt=\"\" />test - Copy.txt</a><a href=\"/es-es/Documents/test%20-%20Copy%20(2).txt\"><img width=\"16\" height=\"16\" class=\"ms-asset-icon ms-rtePosition-4\" src=\"/_layouts/15/images/ictxt.gif\" alt=\"\" />test - Copy (2).txt</a></p>
这个html是一个字符串。 我需要从所有链接中删除hrefs,我不知道如何解决这个问题。
注意:我保留了字符串,这就是为什么它没有在多行代码上格式化...
HtmlAgilityPack是最推荐的解析和操作HTML的工具。
一些起始代码看起来像下面(更多样本是一个搜索):
var htmlDoc = new HtmlAgilityPack.HtmlDocument();
htmlDoc.LoadHtml(htmlString);
var aNodesWithHref = htmlDoc.DocumentNode.SelectNode("//a[@href]");
尝试这个。 您可以使用XML操作轻松实现预期结果。
string s = "<p><a href=\"/es-es/Documents/test.txt\"><img class=\"ms-asset-icon ms-rtePosition-4\" src=\"/_layouts/15/images/ictxt.gif\" alt=\"\" />test.txt</a><a href=\"/es-es/Documents/test%20-%20Copy.txt\"><img width=\"16\" height=\"16\" class=\"ms-asset-icon ms-rtePosition-4\" src=\"/_layouts/15/images/ictxt.gif\" alt=\"\" />test - Copy.txt</a><a href=\"/es-es/Documents/test%20-%20Copy%20(2).txt\"><img width=\"16\" height=\"16\" class=\"ms-asset-icon ms-rtePosition-4\" src=\"/_layouts/15/images/ictxt.gif\" alt=\"\" />test - Copy (2).txt</a></p>";
var xdoc = XDocument.Parse(s);
xdoc.Descendants("a")
.Attributes("href")
.Remove();
Console.WriteLine(xdoc.ToString());
您可以使用AttributeCollection.Remove
方法
YourLink.Attributes.Remove("href");
你能用正则表达式替换它吗?
string newString = Regex.Replace(oldString, @"<a href[^>]+>", @"");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.