C# 从img style=“background:url('path')提取图像,但不从src提取图像

C# 从img style=“background:url('path')提取图像,但不从src提取图像,c#,html,c#-4.0,html-parsing,C#,Html,C# 4.0,Html Parsing,如何在图像标记中使用style属性提取给定的背景图像。 在上面的标记中,我想从style属性提取图像,但不想从src提取。我想提取图像,但不想提取图像的路径。试试这个 var imageUrl = document.getElementById('myImage').style.background.image.url; 您可以使用和: 它将返回一个HtmlAgilityPack类型的列表,其中包含所有图像,然后您可以枚举它们以获得值。如果您正在执行任何复杂的html解析,这是一个很好的解决方

如何在图像标记中使用style属性提取给定的背景图像。
在上面的标记中,我想从style属性提取图像,但不想从src提取。我想提取图像,但不想提取图像的路径。

试试这个

var imageUrl = document.getElementById('myImage').style.background.image.url;
您可以使用和:


它将返回一个HtmlAgilityPack类型的列表,其中包含所有图像,然后您可以枚举它们以获得值。

如果您正在执行任何复杂的html解析,这是一个很好的解决方案

然而,如果这就是您想要做的,一个简单的正则表达式就可以了

如果您使用css标记、图像或背景图像设置了图像,则可以搜索url并提取完整路径

这个非常简单的正则表达式可以做到这一点

url\(.*?\)

在此之后,仅从完整路径中提取图像路径应该很简单。

在使用HTML Agility Pack体验您的方式后,您也可以使用简单的正则表达式来解决此问题

下面是一个示例代码


我想提取图像,但不是图像的路径,你说的图像是什么意思,图像本身??即使我给出从背景url提取的完整路径,图像也不会显示。图像标签看起来像这样,如何获取完整路径。我知道,正因为如此,我才无法看到图像。当我打开文件时,我在浏览器中,路径是C:/Users/Madhusudhan.M/Desktop/.Url正在重定向到本地系统,但不是服务器上的路径。感谢您的回复。如何在HtmlNode中显示图像。如何将这些图像包含在输出字符串中。我正在从网页中提取图像和文本。我想您可以使用string.Substring并获取索引第一次出现的背景:url的x,然后读取所有文本,直到结束。请给我一个示例代码,如何使用它。下面是我到目前为止用于提取内容的代码。HtmlAgilityPack.HtmlDocument document=new HtmlAgilityPack.HtmlDocument;document.LoadHtmlhtml;var images=document.DocumentNode.Descendantsimg.Whered=>d.Attributes.Containsstyle&&d.Attributes[style].Value.Containsbackground:url.ToList;string target=;HtmlNodeCollection col=document.DocumentNode.SelectNodes//table[@id=\resultsTable\];col{target+=link.InnerHtml;}中的foreach HtmlNode链接谢谢你的回复。一旦所有图像都被提取到imageUrl变量中,我就不知道如何使用imageUrl。在上面的回答中,Duane说我们可以在htmlagilitypack中使用HtmlNode,但我在将图像与文本一起放入输出文件时遇到了问题。
url\(.*?\)
style=background:url\('(?<bgpath>.*)'\)
static void Main(string[] args)
{
    string innerHTML = "<img style=\"background:url('images/logo.jpg')\" />";

    string regex = @"style=""background:url\('(?<bgpath>.*)'\)\""";
    RegexOptions options = ((RegexOptions.IgnorePatternWhitespace | RegexOptions.Multiline) | RegexOptions.IgnoreCase);
    Regex reg = new Regex(regex, options);
    if (reg.IsMatch(innerHTML))
    {
        Console.WriteLine(reg.Match(innerHTML).Groups["bgpath"].Value);
    }

    Console.ReadLine();
}