我有一些文本,在文本的不同位置我有一些 HTML 链接,例如 <a href="link">text</a>

我想将其转换为 [url=link]text[/url]

我知道如何阅读 href 和文本,例如:

var link = doc.SelectNodes("//a");
string link = link.Attributes["href"].value;
string text = link.InnerText;

但是我可以在不损害文本、丢失位置等的情况下将它替换回文本的同一位置吗?

例子:
The brown fox <a href="link">jumped over</a> the table while the rabbit <a href="link">scaped from it</a>.

会成为:
The brown fox [url=link]jumped over[/url] the table while the rabbit [url=link]scaped from it[/url].

最佳答案

像这样的东西:

HtmlDocument doc = new HtmlDocument();
doc.Load(myTestFile);

foreach (HtmlNode node in doc.DocumentNode.SelectNodes("//a[@href]"))
{
    node.ParentNode.ReplaceChild(doc.CreateTextNode("[url=" + node.GetAttributeValue("href", null) +"]" + node.InnerHtml + "[/url]"), node);
}

关于c# - 使用 HTMLAgilityPack 将链接转换为 BBCODE?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11848610/

10-15 10:40