C# 在导入到Excel之前从ASP.NET操作HTML
我正在使用ASP.NET中的HTMLTable使用Response.Write导出。将所有HTML表代码写入Excel文件 我现在需要做的是删除这个Excel文件中的所有超链接。有没有比使用正则表达式更好的方法 如果正则表达式是最好的方法,我如何才能消除标记而不是中间的IDC# 在导入到Excel之前从ASP.NET操作HTML,c#,asp.net,regex,excel,hyperlink,C#,Asp.net,Regex,Excel,Hyperlink,我正在使用ASP.NET中的HTMLTable使用Response.Write导出。将所有HTML表代码写入Excel文件 我现在需要做的是删除这个Excel文件中的所有超链接。有没有比使用正则表达式更好的方法 如果正则表达式是最好的方法,我如何才能消除标记而不是中间的ID <td class="header">Details ID</td> <td> <div class="id"><a class="
<td class="header">Details ID</td>
<td>
<div class="id"><a class="details" href="details?id=1232" target="_blank">1232</a></div>
</td>
<td>
<div class="id"><a class="details" href="details?id=1233" target="_blank">1233</a></div>
</td>
<td>
<div class="id"><a class="details" href="details?id=1234" target="_blank">1234</a></div>
</td>
</tr>
详细信息ID
这个简单的正则表达式可以:
</?(a|A).*?>
-1:请看@JohnSaunders:你觉得HtmlAgilityPack怎么样?在这种情况下,这是一个很好的选择……我从未使用过它,但很多人都说它有很多优点。很多人都说使用正则表达式有很多不好的地方。Html敏捷包就是我用来解决这个问题的。它更适合这种情况。不要将正则表达式与HTML一起使用:
class Program
{
static void Main(string[] args)
{
RemoveHyperlinksButKeepText();
}
private static void RemoveHyperlinksButKeepText()
{
var htmlDoc = new HtmlDocument();
htmlDoc.Load(@"C:\YourHtmlFile.html");
var links = htmlDoc.DocumentNode.SelectNodes("//a");
string html = htmlDoc.DocumentNode.OuterHtml;
foreach (HtmlNode link in links)
{
var linkText = link.InnerText;
html = html.Replace(link.OuterHtml, linkText);
}
}
}