2010-11-23 2 views
1

Ich konfrontiert ein Problem mit Src-Attribut für Bilder beim Parsen eines HTML-Dokument mit HAP. Id das src-Attribut-Wert ist eine lange URL mit Parameter, zB: <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 Parsing langen URL mit Parametern in src Attribute für Bilder

dann die HAP analysiert das Bild wie folgt aus: <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'/>

Es ist wie HAP sieht spaltet die params denken, sie Attribute sind.

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

Irgendwelche Ideen, wie ich dies zu vermeiden kann?

Vielen Dank!

+1

Können Sie uns das gesamte Dokument zur Verfügung stellen, das Sie analysieren möchten? Wenn Sie Ihren Code in einem Dokument mit nur 'img' testen, gibt der HAP die URL perfekt zurück. –

Antwort

0

Ihr Code wird wahrscheinlich etwas seltsam zu tun, weil die folgenden Werke fein:

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

Haben Sie eine Repro?

+0

Bearbeitet und etwas Code hinzugefügt. Vielen Dank! –

Verwandte Themen