内容是一个长文本。 在某些地方的某个地方有这样的文字:
<img src="http://rotter.net/forum/Images/locked_icon_general.gif" border=
public static void FilterLockedThreads(string contents)
{
//string middle = \"http://rotter.net/forum/Images/locked_icon_general.gif\"";
string firstTag = "<img src=";
string lastTag = "border=\"";
int f = 0;
int startPos = 0;
while (true)
{
f = contents.IndexOf(firstTag, startPos);
if (f == -1)
{
break;
}
int g = contents.IndexOf(lastTag, f);
startPos = g + lastTag.Length;
string responser = contents.Substring(f + firstTag.Length, g - f - firstTag.Length);
lockedThreads.Add(responser);
}
}
我想要的是List
http://rotter.net/forum/Images/locked_icon_general.gif
在这种情况下,内容中有3个位置,因此lockedThreads应包含3个索引,每个索引包含字符串:http://rotter.net/forum/Images/locked_icon_general.gif
问题代码现在的方式是获取3个索引,但每个索引包含一个垂直的长文本/字符串,而不仅仅是:http://rotter.net/forum/Images/locked_icon_general.gif
现在的代码有什么问题?试图使用断点,但没有找到。
答案 0 :(得分:1)
HtmlAgilityPack.HtmlWeb web = new HtmlAgilityPack.HtmlWeb();
var doc = web.Load(your url);
var imgUrls = doc.DocumentNode.SelectNodes("//img[@border and @src]")
.Select(i => i.Attributes["src"].Value)
.ToList();