我有以下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,我不知道该怎么做。
注意:我保留了字符串,这就是为什么它没有在多行代码上格式化...
答案 0 :(得分:1)
HtmlAgilityPack是解析和操作HTML的最佳推荐工具。
一些起始代码看起来如下(更多样本是一次搜索):
var htmlDoc = new HtmlAgilityPack.HtmlDocument();
htmlDoc.LoadHtml(htmlString);
var aNodesWithHref = htmlDoc.DocumentNode.SelectNode("//a[@href]");
答案 1 :(得分:1)
试试这个。您可以使用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());
答案 2 :(得分:0)
您可以使用AttributeCollection.Remove
方法
YourLink.Attributes.Remove("href");
答案 3 :(得分:0)
你可以用Regex替换它吗?
string newString = Regex.Replace(oldString, @"<a href[^>]+>", @"");