| Subiectul anterior :: Subiectul urmator |
| Autor |
Mesaj |
adminonllystar Administrator

Data inscrierii: 09/Mai/2010 Mesaje: 2
|
Trimis: 9/5/2010 11:06 Titlul subiectului: N/ |
|
|
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 |
|
 |
uahanamiti Junior

Data inscrierii: 12/Iun/2012 Mesaje: 7 Localitate: Ukraine
|
Trimis: 9/5/2010 11:06 Titlul subiectului: |
|
|
| I found this post very useful! |
|
| Sus |
|
 |
uahanamiti Junior

Data inscrierii: 12/Iun/2012 Mesaje: 7 Localitate: Ukraine
|
Trimis: 9/5/2010 11:06 Titlul subiectului: |
|
|
| Very useful information |
|
| Sus |
|
 |
misanchik Junior

Data inscrierii: 19/Iul/2012 Mesaje: 5 Localitate: Bulgaria
|
Trimis: 9/5/2010 11:06 Titlul subiectului: |
|
|
| This is simply amazing! |
|
| Sus |
|
 |
misanchik Junior

Data inscrierii: 19/Iul/2012 Mesaje: 5 Localitate: Bulgaria
|
Trimis: 9/5/2010 11:06 Titlul subiectului: |
|
|
| You are so great |
|
| Sus |
|
 |
noganoga Junior

Data inscrierii: 09/Iul/2012 Mesaje: 5 Localitate: Israel
|
Trimis: 9/5/2010 11:06 Titlul subiectului: |
|
|
| 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 |
|
 |
tcapital Junior

Data inscrierii: 19/Iul/2012 Mesaje: 5 Localitate: Great Britain
|
Trimis: 9/5/2010 11:06 Titlul subiectului: |
|
|
| We have the way the country is not always so easy to find something interesting on the Internet! |
|
| Sus |
|
 |
tcapital Junior

Data inscrierii: 19/Iul/2012 Mesaje: 5 Localitate: Great Britain
|
Trimis: 9/5/2010 11:06 Titlul subiectului: |
|
|
| We have the way the country is not always so easy to find something interesting on the Internet! |
|
| Sus |
|
 |
|