Jump to content

problēma ar c# GetElementById metodi


dobbleextra
 Share

Recommended Posts

Sveiki!

Es veidoju programmu c# un netieku galā ar Null reference exception.

ievaditajs I = new ievaditajs();
            I.ShowDialog();
            filma temp;
            temp.nos = I.t;
            temp.bilde = pictureBox2.Image;
            if (I.vertejums)
            {
                temp.bilde = I.img;
            }
            else
            {
                I.t.Replace(" ", "+");
                wb.Url = new Uri("http://www.imdb.com/find?ref_=nv_sr_fn&q=" + I.t + "&s=all");
                wb.DocumentCompleted += wb_DocumentCompleted;
            }

//Document completed eventa kods

if (wb.ReadyState == WebBrowserReadyState.Complete)
            {
                wb.Url = new Uri(wb.Document.GetElementById("/title/tt1520211/?ref_=fn_al_tt_1").InnerText);
                MessageBox.Show(wb.Document.GetElementById("http://schema.org/AggregateRating").InnerText);
            }


Ideja ir tāda, ka lietotājs ievada informāciju par filmu. Ja vērtujums nav pieejams programma to atrod IMBD lapā, bet if steitments nekad neizpildās un ja to noņemu izmet Null refernce exception.

Link to comment
Share on other sites

tie id izskatās kaut kādi dīvaini, izskatās vairāk pēc url..

droši vien null reference met, jo elements nav atrasts.

 

šitās rindiņas nav labas..:

wb.Url = new Uri(wb.Document.GetElementById("/title/tt1520211/?ref_=fn_al_tt_1").InnerText);
                MessageBox.Show(wb.Document.GetElementById("http://schema.org/AggregateRating").InnerText);

uzraksti vienkārši

String rating = wb.Document.GetElementByClassName('titlePageSprite star-box-giga-star');

Apskaties stackoverflow (apskaties šo: http://stackoverflow.com/questions/8461932/how-to-getelement-by-class

) , kā dabūt elementus pēc classname..
Link to comment
Share on other sites

dobbleextra
(labots)

Paldies, bet wb.Document nav tādas funkcijas, kura iegūst elementu pēc klases. Un tajā linkā arī tā ir teikts. Varbūt vari pastāstīt kā dabūt pēc id, ja ar class name nevar. Vel ir iespēja pēc Tag, point un has code. :)

Labots - dobbleextra
Link to comment
Share on other sites

Brivvirs

Lai izfečotu datus no html var lietot šo: htmlagilitypack.codeplex.com/

//ielādē lapu document mainīgājā
var document = getHtmlWeb.Load({urlis});
var tags = document.DocumentNode.SelectNodes("//[@class='{kaut kāda klase}']");
 

Vai vienakrši ar regex paņem to, ko tev vajag.

http://www.dotnetperls.com/regex-match

Labots - Brivvirs
Link to comment
Share on other sites

Izveido kontu, vai pieraksties esošajā, lai komentētu

Jums ir jābūt šī foruma biedram, lai varētu komentēt tēmas

Izveidot jaunu kontu

Piereģistrējies un izveido jaunu kontu, tas būs viegli!

Reģistrēt jaunu kontu

Pierakstīties

Jums jau ir konts? Pierakstieties tajā šeit!

Pierakstīties tagad!
 Share

×
×
  • Izveidot jaunu...