1

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;

<imgノード全体を提供します...これは私が望む以上のものです。

次のように、anchorTagsにファイルのフォルダーと名前だけを含めたいと思います。

[0] = images/sample001.jpg
[1] = images/sample002.png

したがって、.OuterHtml以外のものが必要ですが、見つかりません。

誰か助けてもらえますか?

4

1 に答える 1

1

src画像要素の属性の値を探しています。

foreach (HtmlNode img in root.SelectNodes("//img"))
{
    string att = img.Attributes["src"].Value;
    anchorTags.Add(att);
}
于 2012-04-16T18:42:23.753 に答える