Gå til innhold

Anbefalte innlegg

Jeg har en skoleoppgave som går ut på lage en enkel webbrowser (vha. socketprogrammering osv). Browseren skal kunne hente en webside, og gjøre enkle parse-oppgaver, som f.eks å tolke tags som <BR>, <H1>, <H2> osv.

 

Jeg har fått til å hente websider, men nå som jeg skal begynne å parse-delen sier de litt stopp. Noen som har tips for å sparke meg litt i gang? Vet ikke helt om jeg skjønner hvordan jeg skal tenke, og om det finnes noen ferdig-biblioteker som kan gjøre oppgaven LITT enklere (uten å løse det hele for meg).

 

Noen tips?

Lenke til kommentar
Videoannonse
Annonse

Vel, er ikke noe ekspert.. men har jo egentlig bare med å manipulere strings egentlig.

 

Hvis du henter ned <br > (som tilsvarer linjeskift), så er det vel bare å gjøre den om til \n i C++ (dette er console da, gjør tilsvarende i den API du bruker e.l.)

 

<p> (paragraph) er det bare å tulke litt med så alt innenfor <p> og </p> vil "stå ut" litt... skjønner? :)

 

Håper jeg ikke svarte helt feil på spørsmålet ditt men... er egentlig bare å kode masse.. :)

Lenke til kommentar

Har selv gode erfaringer med Spirit; parserbiblioteket til Boost. Glimrende til å lage både enkle og mer kompliserte parsere.

 

http://www.boost.org

 

Spirit er et headerbibliotek og trenger ikke bygges så sant du ikke bruker regular expressions. Det finnes også en separat Spirit pakke for å slippe å laste ned hele Boost.

Lenke til kommentar
  • 4 uker senere...

Lag en klasse som har som oppgave å lese inn et og et tegn på commando, en GetCharacter() funksjon. Pice of cake. Gjør den generell så du kan benytte den senere.

 

Lag en klasse som skal hente ut tegn og sette de sammen til "objekter".

Ha en funksjon som skal spise mellomrom, end-of-line og andre unyttige tegn. Men pass på NÅR du bruker den. For tekst overalt i et html dokument er stortsett nyttig, bortsett fra end-of-line og kommentarer

Så har du en svær switch.

case '<'

 

Prøv så mye som muligt å bygge trær. Et objekt for hver tagg, husk at en tagg kan ha andre tagger inni seg

ex: <h1>Fin <b>fet</b> tekst</h1>

 

Tegn treet før du begynner å mekke, så du vet hvor ting skal plasseres, og hvordan du skal trø gjennom tree'et for å få ut fornuftig data av det.

 

For å imponere så kan du legge til et visitor pattern og så lage objekt som printer ut siden gjennom det systemet....

 

Parsing og trær er såååå kult.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...