2010-11-23 5 views
1

J'ai rencontré un problème avec l'attribut src pour les images lors de l'analyse d'un document html en utilisant HAP. Id la valeur de l'attribut src est une longue URL avec le paramètre, par exemple: <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' />HTML Agility Pack analyse l'URL longue avec params dans les attributs src pour les images

alors le PAH parse l'image comme ceci: <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'/>

Il ressemble PAH divise les params pensant qu'ils sont des attributs.

Mon code:

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

Toute idée comment puis-je éviter cela?

Merci beaucoup!

+1

Pourriez-vous nous fournir le document entier que vous essayez d'analyser? Tester votre code dans un document avec seulement ce 'img', le HAP renvoie l'URL parfaitement. –

Répondre

0

Votre code fait probablement quelque chose d'étrange, parce que les travaux suivants fins:

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

Avez-vous une repro?

+0

Modifié et ajouté du code. Merci! –

Questions connexes