1

我有一个模型,它从数据库返回 html,我需要更改没有正斜杠的链接(但显然不要使用 http: 或已经有斜杠的硬编码链接)

例如,从 href="example" 到 href="/example" href="/example" 中的值是未知的,可以是任何值。因此,如果它只是一个没有斜杠的单词,请添加它。如果它已经有 http: 或斜线,请不要更改它

4

2 回答 2

1

以下是您可能需要执行的操作的概述:

  1. 解析 HTML。
  2. 找到所有链接。
  3. 对于每个链接:
    1. 将 href 属性值解析为 URL。
    2. 如果它是相对的并且不以 / 或 ~/ 开头,则添加前缀 / 并设置 href 属性。
  4. 将解析后的 H​​TML 转换回文本。

您可以使用 HtmlAgilityPack 和 System.Uri 进行解析。

于 2013-07-15T02:38:42.880 回答
1

您是否尝试过使用Replace来完成这项工作?

你可以让它替换 href=" >> href="/

String s = "href=\"example\"";
s.Replace("href=\"", "href=\"/");

那会回来

href="/example"
于 2013-07-12T21:24:33.693 回答