Tagi na forum.

Windows 14205 SQL Server 2132
sieci 6796 Windows XP 1921
SQL 6578 Outlook 1838
SBS 3868 Uprawnienia 1777
Windows 2003 2781 IIS 1636
Windows Server 2588 Office 1516
DNS 2315 Skrypt 1499

pokaż wszystkie tagi na forum

HtmlAgilityPack; pobranie div

simman 2011-06-20 11:58:15
0
avatar
 
 
Część
 
Mam taki problem:
zły podaje atrybut do foreach.
HtmlAttribute att = link.Attributes["id"];
HtmlAttribute att = link.Attributes[?];
 
Co powinienem podać aby pobrać dane z link?
 
protected void Page_Load(object sender, EventArgs e) { HtmlWeb hw = new HtmlWeb(); HtmlDocument doc = hw.Load("http://www.onet.pl"); foreach (HtmlNode link in doc.DocumentNode.SelectNodes("//div[@id='acttic']")) ////div[@class='content'] { HtmlAttribute att = link.Attributes["id"]; TextBox1.Text += (att.Value); } }
Liczba postów:

procent  2011-06-20 13:07:24 #1.1
0
avatar Ekspert CG
 
 
To da znajdzie ci diva o ktorego ci chodzi:
//div[@id='acttit']
 
To zwraca ci atrybut "id" z tego diva:
HtmlAttribute att = link.Attributes["id"];
 
A to wpisuje wartosc atrybutu do textoxa:
TextBox1.Text += (att.Value)
 
... więc o co chodzi? Przecież to działa tak jak masz napisane w kodzie. Jak chcesz dostać się do zawartości diva to czemu pobierasz jego atrybut, a nie jego zawartosc?-------http://www.maciejaniserowicz.com

simman  2011-06-20 13:10:50 #1.1.1
0
avatar
 
 
Dzięki już sobie poradziłem.
 
string name = doc.DocumentNode.SelectSingleNode("//div[@id='acttit']").InnerText;
TextBox1.Text = name;

procent  2011-06-20 12:12:39 #1
0
avatar Ekspert CG
 
 
Zupełnie nie rozumiem o co chodzi. Napisz co chcesz osiągnąć.-------http://www.maciejaniserowicz.com

simman  2011-06-20 12:23:08 #1.1
0
avatar
 
 
Tutaj masz ten fragmęnt odpowiadający za łączenie:
foreach (HtmlNode link in doc.DocumentNode.SelectNodes("//div[@id='acttit']"))
 
Tutaj mam problem: Dlaczego? bo źle się odwołuje do foreach
HtmlAttribute att = link.Attributes["@id='acttit'"];
 
 
 
 

procent  2011-06-20 12:27:02 #1.1.1
0
avatar Ekspert CG
 
 
Tak jak napisałem wyżej - opisz co chcesz osiągnąc, bo dalej nie rozumiem. Jakie łączenie? Jakie odwołanie do foreach?
Właściwie to po co ci w ogóle pętla, skoro szukasz elementu po ID, a z założenia powinien być tylko jeden element z danym ID na stronie?-------http://www.maciejaniserowicz.com

simman  2011-06-20 12:57:48 #1.1.2
0
avatar
 
 
Chce wyciągnąć dane z tego <div id='acttit'>cos</div>
 
Jednak mam błędy. Chce do tego użyć HtmlAgilityPack bo ma ogromne możliwości.
 
var name = doc.DocumentNode.SelectSingleNode("//div[@id='acttit']").InnerHtml;TextBox1.Text = name.ToString();

simman  2011-06-20 13:03:28 #1.1.3
0
avatar
 
 
Jeśli napisze tak:
 
foreach (HtmlNode link in doc.DocumentNode.SelectNodes("//div[@id='acttit']")) ////div[@class='content'] { HtmlAttribute att = link.Attributes["id"]; TextBox1.Text += (att.Value); }
 
dostane jedynie w textbox1: attitt czyli id diva ze strony internetowej a nie jego zawartosc.

procent  2011-06-20 13:07:24 #1.1
0
avatar Ekspert CG
 
 
To da znajdzie ci diva o ktorego ci chodzi:
//div[@id='acttit']
 
To zwraca ci atrybut "id" z tego diva:
HtmlAttribute att = link.Attributes["id"];
 
A to wpisuje wartosc atrybutu do textoxa:
TextBox1.Text += (att.Value)
 
... więc o co chodzi? Przecież to działa tak jak masz napisane w kodzie. Jak chcesz dostać się do zawartości diva to czemu pobierasz jego atrybut, a nie jego zawartosc?-------http://www.maciejaniserowicz.com

simman  2011-06-20 13:10:50 #1.1.1
0
avatar
 
 
Dzięki już sobie poradziłem.
 
string name = doc.DocumentNode.SelectSingleNode("//div[@id='acttit']").InnerText;
TextBox1.Text = name;

Udziel odpowiedzi

avatar
Treść wpisu:

Zaloguj się lub Zarejestruj się aby wykonać tę czynność.

Idź na górę strony