我正在使用HtmlAgilityPack并尝试从html中提取图像名称。这是我的html字符串:
sHtml = "<HTML><HEAD></HEAD><BODY>Here are some images.</br>1) < IMG style='MARGIN-BOTTOM: 20px; MARGIN-LEFT: 20px' align=right src='images/sample001.jpg'>2) < IMG style='MARGIN-BOTTOM: 25px; MARGIN-LEFT: 25px' align=right src='images/sample002.png'></br> And some docs as well.</br>1) href='javascript:parent.POPUP({url:'testDoc001.htm',type:'shared',width:600,height:645})'></br>2) href='javascript:parent.POPUP({url:'testDoc002.html',type:'shared',width:700,height:712})'></br></BODY></HTML>"
在WPF C#中,我将此字符串传递给以下例程:
private static List<string> ExtractHtmlInfo(string sHtml)
{
HtmlDocument doc = new HtmlDocument();
doc.Load(new StringReader(sHtml));
HtmlNode root = doc.DocumentNode;
List<string> anchorTags = new List<string>();
//foreach (HtmlNode link in root.SelectNodes("//a"))
foreach (HtmlNode link in root.SelectNodes("//img"))
{
string att = link.OuterHtml;
anchorTags.Add(att);
}
return anchorTags;
}
当我单步执行代码时,我看到了这一行:
string att = link.OuterHtml;
提供整个&lt; img node ...这比我想要的要多。
我希望anchorTags只包含文件的文件夹和名称,如:
[0] = images/sample001.jpg
[1] = images/sample002.png
所以,我需要除了.OuterHtml之外的其他东西,但找不到它。
有人可以帮忙吗?
答案 0 :(得分:1)
您正在寻找图像元素的src
属性的值:
foreach (HtmlNode img in root.SelectNodes("//img"))
{
string att = img.Attributes["src"].Value;
anchorTags.Add(att);
}