【发布时间】:2015-03-03 16:14:18
【问题描述】:
private void ParseFilesNames()
{
using (WebClient client = new WebClient())
{
try
{
for (int i = 0; i < 15; i++)
{
string urltoparse = "mysite.com/gallery/albums/from_old_gallery/" + i;
string s = client.DownloadString(urltoparse);
int index = -1;
while (true)
{
string firstTag = "HREF=";
string secondtag = ">";
index = s.IndexOf(firstTag, 0);
int endIndex = s.IndexOf(secondtag, index);
if (index < 0)
{
break;
}
else
{
string filename = s.Substring(index + firstTag.Length, endIndex - index - firstTag.Length);
}
}
}
}
catch (Exception err)
{
}
}
}
问题在于子字符串。索引 + firstTag.Length,endIndex - 索引 - firstTag.Length 这是错误的。
我需要得到的是HREF="和">之间的字符串
整个字符串看起来像:HREF="myimage.jpg">
我只需要获取“myimage.jpg”
有时它可能是“myimage465454.jpg”,所以无论如何我只需要获取文件名。只有“myimage465454.jpg”。
我应该在子字符串中更改什么?
【问题讨论】:
-
只使用 HtmlAgilityPack - 不要尝试自己解析 HTML,其他人已经为您完成了这项工作
-
既然已经是“已解决”的问题,为什么还要手动解析 HTML?看看 HTML Agility Pack,无需像穴居人一样解析 HTML。
标签: c# .net string substring indexof