Pagina de start a forumului OnllyStar.MyForum.ro OnllyStar.MyForum.ro
http://onllystar.info/
 
 FAQFAQ   CautareCautare   MembriMembri   GrupuriGrupuri   InregistrareInregistrare 
 ProfilProfil   Mesaje privateMesaje private   AutentificareAutentificare 

N/

 
Creaza un subiect nou   Raspunde la subiect    Pagina de start a forumului OnllyStar.MyForum.ro -> Bun venit pe MyForum !
Subiectul anterior :: Subiectul urmator  
Autor Mesaj
adminonllystar
Administrator
Administrator


Data inscrierii: 09/Mai/2010
Mesaje: 2

MesajTrimis: 9/5/2010 11:06    Titlul subiectului: N/ Raspunde cu citat (quote)

Exista prea multi programatori care au / au avut necesitate de un astfel de parser in C# si totusi exista prea putine solutii pe Internet in acest sens. Din pacate .NET Framework nu vine cu o astfel de solutie. Ca si alternativa exista Microsoft HTML Object Library dar care, mie cel putin, imi facea figuri din cauza ca imi aparea eroarea "Potential security risk ..." (nu am reusit sa o dezactivez, si oricum nu ar fi eleganta o solutie ce ar presupune ca userul sa faca ceva manual).

Am incercat si, sper eu, am reusit intr-o oarecare masura sa fac acest lucru, sa creez o librarie care sa parseze HTMLuri. In acelasi timp am vrut sa fie la fel de usor de utilizat cum ar fi libraria System.Xml (lucru care a complicat putin lucrurile). Sunt constient de cateva posibile buguri care mai pot aparea in folosirea librariei, dar pentru siteurile pe care am folosit-o a mers cumplit de bine (microsoft.com , adobe.com , gracenote.com etc). Dificultatea in implementarea acestei librarii provine tocmai de la faptul ca HTMLul este destul de imprevizibil.

Clasele care apartin librariei sunt:
1. HTMLDocument
2. HTMLNode
3. HTMLAttributeList
4. HTMLAttribute

Exemple:

1. Utilizarea innerText-ului

Pentru HTMLul:
Cod:
<html>
<body>
abcdef
</body>
</html>


Vrem sa afisam abcdef

Cod:
HTMLDocument ht = new HTMLDocument(data);//in data se afla htmlul,data de tip string
ht.ProcessSource();
HTMLNode hn=ht.DocumentElement.SubNodes[0];//ne aflam in body
Console.WriteLine(hn.innerText); //am afisat abcdef


2. Folosirea atributelor

Pentru HTMLul:
Cod:
<html>
<body>
<a href="http://microsoft.com">MS</a>
</body>
</html>


Vrem sa afisam linkul si textul linkului

Cod:
HTMLDocument ht = new HTMLDocument(data);//in data se afla htmlul,data de tip string
ht.ProcessSource();
HTMLNode hn=ht.DocumentElement.SubNodes[0];//ne aflam in body
hn=hn.SubNodes[0];//ne aflam in a
Console.WriteLine(hn.AttributeList.GetValueByName("href")); //am afisat http://microsoft.com
Console.WriteLine(hn.innerText);//am afisat MS


Alti(e) membrii/functii:

  • innerHTML
  • AttributeList.Add
  • AttributeList[i].Name
  • AttributeList[i].Value
  • AttributeList.AttributeCount
  • AttributeList.Items
  • AddNode
  • TagName
  • parentNode
  • NodeCount


Pentru feedback va rog sa postati. In cazul in care ati gasit buguri va rog sa postati codul vostru+htmlul folosit.

Update (14 / 10 / 2009):
- Se pot folosi tagurile (in upper case) <BR>, <IMG>, <P> etc fara a fi nevoie sa "le inchideti".
- Cautarea printre semnale nu mai este case sensitive

Download (sursa+binar):
[url]http://www.megaupload.com/?d=IELHVV1W[/url]
Sus
Vezi profilul utilizatorului Trimite mesaj privat
uahanamiti
Junior
Junior


Data inscrierii: 12/Iun/2012
Mesaje: 7
Localitate: Ukraine

MesajTrimis: 9/5/2010 11:06    Titlul subiectului: Raspunde cu citat (quote)

I found this post very useful!
Sus
Vezi profilul utilizatorului Trimite mesaj privat
uahanamiti
Junior
Junior


Data inscrierii: 12/Iun/2012
Mesaje: 7
Localitate: Ukraine

MesajTrimis: 9/5/2010 11:06    Titlul subiectului: Raspunde cu citat (quote)

Very useful information
Sus
Vezi profilul utilizatorului Trimite mesaj privat
misanchik
Junior
Junior


Data inscrierii: 19/Iul/2012
Mesaje: 5
Localitate: Bulgaria

MesajTrimis: 9/5/2010 11:06    Titlul subiectului: Raspunde cu citat (quote)

This is simply amazing!
Sus
Vezi profilul utilizatorului Trimite mesaj privat
misanchik
Junior
Junior


Data inscrierii: 19/Iul/2012
Mesaje: 5
Localitate: Bulgaria

MesajTrimis: 9/5/2010 11:06    Titlul subiectului: Raspunde cu citat (quote)

You are so great
Sus
Vezi profilul utilizatorului Trimite mesaj privat
noganoga
Junior
Junior


Data inscrierii: 09/Iul/2012
Mesaje: 5
Localitate: Israel

MesajTrimis: 9/5/2010 11:06    Titlul subiectului: Raspunde cu citat (quote)

I hope I will come to your site after a few weeks and find interest post like this again))) See you in a future)
Sus
Vezi profilul utilizatorului Trimite mesaj privat
tcapital
Junior
Junior


Data inscrierii: 19/Iul/2012
Mesaje: 5
Localitate: Great Britain

MesajTrimis: 9/5/2010 11:06    Titlul subiectului: Raspunde cu citat (quote)

We have the way the country is not always so easy to find something interesting on the Internet!
Sus
Vezi profilul utilizatorului Trimite mesaj privat
tcapital
Junior
Junior


Data inscrierii: 19/Iul/2012
Mesaje: 5
Localitate: Great Britain

MesajTrimis: 9/5/2010 11:06    Titlul subiectului: Raspunde cu citat (quote)

We have the way the country is not always so easy to find something interesting on the Internet!
Sus
Vezi profilul utilizatorului Trimite mesaj privat
Afiseaza mesajele pentru a le previzualiza:   
Creaza un subiect nou   Raspunde la subiect    Pagina de start a forumului OnllyStar.MyForum.ro -> Bun venit pe MyForum ! Ora este GMT + 2 ore
Pagina 1 din 1

 
Mergi direct la:  
Nu puteti crea un subiect nou in acest forum
Nu puteti raspunde in subiectele acestui forum
Nu puteti modifica mesajele proprii din acest forum
Nu puteti sterge mesajele proprii din acest forum
Nu puteti vota in chestionarele din acest forum


Powered by phpBB © 2001, 2005 phpBB Group
Fa-ti si tu propriul forum GRATUIT, pe www.myforum.ro