0

我有以下html片段:

<p>​&lt;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 在一个字符串中。我需要从所有链接中删除href,但不知道该怎么做。

注意:我保留了字符串,这就是为什么它没有在多行代码中格式化...

4

4 回答 4

1

尝试这个。您可以使用 XML 操作轻松实现预期结果。

string s = "<p>​&lt;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());
于 2013-10-24T18:51:46.747 回答
1

HtmlAgilityPack是最推荐的用于解析和操作 HTML 的工具。

一些起始代码如下所示(更多示例只需一次搜索):

var htmlDoc = new HtmlAgilityPack.HtmlDocument();
htmlDoc.LoadHtml(htmlString);  
var aNodesWithHref = htmlDoc.DocumentNode.SelectNode("//a[@href]");
于 2013-10-24T18:48:44.090 回答
0

您可以使用该AttributeCollection.Remove方法

YourLink.Attributes.Remove("href");
于 2013-10-24T18:43:44.150 回答
0

你可以用正则表达式替换它吗?

string newString = Regex.Replace(oldString, @"<a href[^>]+>", @"");
于 2013-10-24T18:47:32.610 回答