如何在图像标签中提取使用style属性给出的背景图像。 在上面的标签中,我想从样式属性中提取图像,但不是从src中提取图像。我希望提取图像,但不是图像的路径。
答案 0 :(得分:0)
试试这个
var imageUrl = document.getElementById('myImage').style.background.image.url;
答案 1 :(得分:0)
您可以使用HTML Agility pack和:
var images = doc.DocumentNode.Descendants("img").Where(d => d.Attributes.Contains("style") && d.Attributes["style"].Value.Contains("background:url")).ToList();
将返回包含所有图像的HtmlAgilityPack<HtmlNode>
类型列表,然后您可以枚举它们获取值。
答案 2 :(得分:0)
如果您正在进行任何复杂的html解析,HTML Agility Pack是一个很好的解决方案。
但是,如果这就是你想要的,那么一个简单的正则表达式就可以解决这个问题。
如果您使用css标签,图片或背景图片设置了图像,则可以搜索网址并提取完整路径。
这个非常简单的正则表达式就是这样做的。
url\(.*?\)
在此之后,仅从完整路径中提取图像路径应该是微不足道的。
答案 3 :(得分:-1)
使用 HTML Agility Pack
进行xpathing后,你也可以使用简单的正则表达式解决这个问题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();
}