C# 获取文本中的所有html节点
我有一些文本(不是HTML文档),它们在其他单词之间只有C# 获取文本中的所有html节点,c#,html-agility-pack,C#,Html Agility Pack,我有一些文本(不是HTML文档),它们在其他单词之间只有a标记,如下所示(本例有两个a节点): 只是指第一个链接,但我想在文本内的所有链接。我怎样才能找到它们?谢谢。选择文档中的所有链接,然后替换其内部html: HtmlDocument doc = new HtmlDocument(); doc.LoadHtml(text); foreach (var link in doc.DocumentNode.SelectNodes("//a")) link.InnerHtml = "li
a
标记,如下所示(本例有两个a
节点):
只是指第一个链接,但我想在文本内的所有链接。我怎样才能找到它们?谢谢。选择文档中的所有链接,然后替换其内部html:
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(text);
foreach (var link in doc.DocumentNode.SelectNodes("//a"))
link.InnerHtml = "link";
string result = doc.DocumentNode.OuterHtml;
结果是
<a rel="nofollow" target="_blank" href="http://loremipsum.net/">link</a>
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, <a rel="nofollow"
target="_blank" href="http://loremipsum.net/">link</a> sed diam nonummy nibh
euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
洛雷姆·伊普苏姆·多洛·希特·阿梅特(Lorem ipsum Door sit amet)是一位杰出的领导者,他是一位伟大的领袖
尤伊斯穆德·廷西德和拉奥里特·多洛尔·马格纳·埃拉帕特。
hi@paqogomez,正如我所说,node只返回第一个链接。在他的回答中,他假设它是一个html文档,但它是一个文本,因此结果不是我所需要的。这个问题是下一步:)非常感谢你,谢尔盖。你救了我的命!(如果没有任何链接,它将抛出null异常,但没有问题)@user3293835您是对的-我忘记了HtmlAgilityPack返回null
而不是空节点集合。只需将所选节点保存到局部变量,如links
,并在枚举前验证其是否为null
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(text);
foreach (var link in doc.DocumentNode.SelectNodes("//a"))
link.InnerHtml = "link";
string result = doc.DocumentNode.OuterHtml;
<a rel="nofollow" target="_blank" href="http://loremipsum.net/">link</a>
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, <a rel="nofollow"
target="_blank" href="http://loremipsum.net/">link</a> sed diam nonummy nibh
euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.