2016-07-18 71 views
1

我想使用下面的代碼來獲取網頁中的表,問題總是返回第一條記錄。 哪裏可以成爲問題,我如何解決它?解析HTML表與htmlagilitipack

Dim web As New HtmlAgilityPack.HtmlWeb 
    Dim doc As HtmlAgilityPack.HtmlDocument = web.Load("http://colodchaco.org.ar/paginas/aranceles.php?cod_os=1") 
    Dim tables As HtmlAgilityPack.HtmlNodeCollection = doc.DocumentNode.SelectNodes("//table") 

    ' Iterate all rows in the first table 
    Dim rows As HtmlAgilityPack.HtmlNodeCollection = tables(0).SelectNodes("//tr") 
    'Console.WriteLine(tables(0).InnerHtml) 

    Console.WriteLine("filas: " & rows.Count) 

    For Each Row As HtmlAgilityPack.HtmlNode In rows 
     Console.WriteLine(Trim(Row.SelectNodes("//td").Item(0).InnerText)) 
     Console.WriteLine(Trim(Row.SelectNodes("//td").Item(1).InnerText)) 
     Console.WriteLine(Trim(Row.SelectNodes("//td").Item(2).InnerText)) 
     Console.WriteLine(Trim(Row.SelectNodes("//td").Item(3).InnerText)) 
     Console.WriteLine(Trim(Row.SelectNodes("//td").Item(4).InnerText)) 
    Next 

輸出

01.01.00 
Examen - Diagn?stico y Plan de Tratamiento. 
- 
- 
$120.00 
01.01.00 
Examen - Diagn?stico y Plan de Tratamiento. 
- 
- 
$120.00 
01.01.00 
Examen - Diagn?stico y Plan de Tratamiento. 
- 
- 
$120.00 
01.01.00 
Examen - Diagn?stico y Plan de Tratamiento. 
- 
- 
$120.00 
01.01.00 
Examen - Diagn?stico y Plan de Tratamiento. 
- 
- 
$120.00 

問候

回答

0

朋友,它在工作中遵循

.... 
Dim rows As HtmlAgilityPack.HtmlNodeCollection = tables(0).SelectNodes("./tr") 

Console.WriteLine("filas: " & rows.Count 

For Each Row As HtmlAgilityPack.HtmlNode In rows 
    Console.WriteLine(Trim(Row.SelectNodes("./td").Item(0).InnerText)) 
    .... 
Next 

感謝您anwers!