Avatar billede Syska Mester
29. maj 2009 - 11:52 Der er 5 kommentarer og
1 løsning

Parse html class

Hej,

Jeg søger en måde at parse html ... dvs html ser altid ens ud(næsten), dvs at jeg ved at jeg skal gennem 3 divs ... så det næste div skal have en css class "header" og der ligger så en masse <table> i den sidste div ...

Jeg synes jeg har søgt rundt på nettet men ikke fundet noget super smart til min opgave ...

Jeg ønsker helst et bibliotek jeg kan inkludere i mit projekt og bruge det på den måde ...


Og nej, det er ikke til bolig sites og hvad der ellers har været oppe at vende her på eksperten når folk spørger, som ikke er lovligt. Det er til et online spil hvor folk selv på deres egen konto skal give mig html koden som jeg så skal parse og finde nyttig information i ...

mvh
Avatar billede sirius Nybegynder
29. maj 2009 - 13:01 #1
Du kan f.eks. bruge LINQ to XML

Et eksempel:

string html = "<html><head><title>Title</title></head><body><div><div><div><div class=\"header\">Indhold</div></div></div></div></body></html>";

var doc = XDocument.Parse(html);

var indhold = from tag in doc.Descendants("div")
              where tag.Attribute("class") != null && tag.Attribute("class").Value == "header"
              select tag;

Console.WriteLine(indhold.First().Value);

udskriver: Indhold
Avatar billede arne_v Ekspert
29. maj 2009 - 13:15 #2
Hvis den HTML er valid XML, så kan du parse det den og nemt finde det du ønsker.

Jeg ville bruge XPath fremfor LINQ for XML.

Eksempel:

XmlDocument doc = new XmlDocument();
doc.LoadXml(html);
string whatever = doc.SelectSingleNode("//div/div[@class='header']/div/table/tr[2]/td[3]/text()").Value;

Hvis den ikke er valid XML kan du vælge mellem:

1) finde en speciel HTML parser (vi havde et par stykker på bordet for et par måneder siden)

2) bruge regex
Avatar billede Syska Mester
29. maj 2009 - 15:33 #3
sirius:
Vil kigge på det ...

arne_v:
ja, jeg finder ud af om den af valid XML :-)

På bordet her på eksperten, så det er offentlig tilgængeligt eller ?
Avatar billede arne_v Ekspert
29. maj 2009 - 15:46 #4
Avatar billede Syska Mester
11. marts 2010 - 09:16 #5
Endte med HTML Agility Pack

Så det må være arne_v der skal have point.

mvh
Avatar billede arne_v Ekspert
11. marts 2010 - 15:02 #6
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester