HTML Agility Pack анализирует длинный URL с параметрами в атрибутах src для изображений - PullRequest
1 голос
/ 23 ноября 2010

Я столкнулся с проблемой с атрибутом src для изображений при разборе html-документа с использованием HAP.Если значение атрибута src является длинным URL с параметром, например: <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 разделяет параметры, думая, что ониявляются атрибутами.

Мой код:

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 голосов
/ 23 ноября 2010

Ваш код, вероятно, делает что-то странное, потому что следующее работает нормально:

    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);

У тебя есть репро?

...