HTML Agility Pack在图像的src属性中使用params解析长URL

时间:2010-11-23 09:06:12

标签: html html-agility-pack

在使用HAP解析html doc时,我遇到了图像的src属性问题。 Id src属性值是带参数的长网址,例如:<img border='0' title='Kommunelogo' alt='Kommunelogo' style='margin-top: 5px;' src='http://livskraftig.bedrekommune.no/more/reports/profilechart.jsp?legend=Y&graphtype=xy&profileid=19433213274429306&element=72&addyears=true' />

然后HAP解析图像:<img border='0' title='Kommunelogo' alt='Kommunelogo' style='margin-top: 5px;' src='http://livskraftig.bedrekommune.no/more/reports/profilechart.jsp?legend="Y"&amp;amp;graphtype="xy"&amp;amp;profileid="19433213274429306"&amp;amp;element="72"&amp;amp;addyears="tru"e'/>

看起来HAP将params视为属于他们的属性。

我的代码:

HtmlDocument doc = new HtmlDocument();
doc.OptionOutputAsXml = true;
doc.OptionAutoCloseOnEnd = true;
doc.OptionFixNestedTags = true;
doc.LoadHtml(input_which_is_a_whole_html_file);

HtmlAgilityPack.HtmlNodeCollection imageNodes = doc.DocumentNode.SelectNodes("//img");
if (imageNodes != null)
{
    foreach (HtmlAgilityPack.HtmlNode imgNode in imageNodes)
    {
        string imgSrc = imgNode.Attributes["src"].Value;
    }
}

任何想法我怎样才能避免这种情况?

非常感谢!

1 个答案:

答案 0 :(得分:0)

你的代码可能做了一些奇怪的事情,因为以下工作正常:

    HtmlDocument doc = new HtmlDocument();
    doc.LoadHtml("<img border='0' title='Kommunelogo' alt='Kommunelogo' style='margin-top: 5px;' src='http://livskraftig.bedrekommune.no/more/reports/profilechart.jsp?legend=Y&graphtype=xy&profileid=19433213274429306&element=72&addyears=true' />");
    doc.Save(Console.Out);

你有一个复制品吗?