C# 从字符串中获取多个子字符串
所以我有html文件。我需要提取所有的链接和图像从他们。所以基本上我需要:C# 从字符串中获取多个子字符串,c#,html,string,substring,C#,Html,String,Substring,所以我有html文件。我需要提取所有的链接和图像从他们。所以基本上我需要: 和 我一行一行地读文件,可以得到它,但只有第一个: List<string> links = new List<string>(); if (line.Contains(@"<a href=""") || line.Contains(@"<img src=""")) { if (line.Contains(@"<a href=""")
和
我一行一行地读文件,可以得到它,但只有第一个:
List<string> links = new List<string>();
if (line.Contains(@"<a href=""") || line.Contains(@"<img src="""))
{
if (line.Contains(@"<a href=""")
{
links.Add(line.Split(new string[] { @"<a href""" }, StringSplitOptions.None)[1].Split('"')[0]);
}
else
{
links.Add(line.Split(new string[] { @"<a href=""" }, StringSplitOptions.None)[1].Split('"')[0]);
}
}
List links=newlist();
如果(line.Contains)(@“我认为你没有使用正确的方法来做这件事,我可以建议你看看一个报废工具,它是为做这类事情而优化的
这里是一个用实现这一点的例子,我不认为您使用了正确的方法来实现这一点。我可以建议您看看一个报废工具,它是为实现这一点而优化的
下面是一个使用实现这一点的示例。首先,最好知道变量行的类型。其次,在我看来,您需要一个while循环,直到到达文件末尾。while(!EOF)使用。请改用HTML Agility Pack之类的工具-只需搜索所有“a”或“img”元素,然后获取“@href”“属性。对于此类任务,类似的操作比直接字符串操作更好。首先,最好知道变量行的类型。其次,在我看来,您需要一个while循环,直到到达文件结尾。while(!EOF)使用。请改用HTML Agility Pack之类的工具-只需搜索所有“a”或“img”元素,并获取“@href”对于此类任务,类似的属性将比直接字符串操作更好。这也适用于php文件吗?@fishmong3r不,这是针对C#,.NET.php有自己的工具/扩展/类来处理this@fishmong3r如果您的意思是输入是php,那么您必须尝试一下,看看HTML Agility Pack是如何处理它的我的意思是输入是php。如果文件中没有a href,则程序将终止。如何首先检查它,如If(没有节点)return;
这也适用于php文件吗?@fishmong3r不适用于C#,.NET.php有自己的工具/扩展名/类来处理this@fishmong3r如果你的意思是输入是php,那么你必须试试看HTML Agility Pack对它做了什么是的,当然我的意思是输入是php。如果文件中没有a href,程序就会消失。如何首先检查它,如if(没有节点)return;
HtmlDocument doc = new HtmlDocument();
doc.Load("mytest.htm");
foreach (HtmlNode node in doc.DocumentNode.SelectNodes("//a[@class='dn-index-link']"))
{
Console.WriteLine("node:" + node.GetAttributeValue("href", null));
}