Разбор HTML-таблиц с различными делениями одновременно для записи в просмотр списка - PullRequest
0 голосов
/ 09 октября 2018

пытается прочитать данные из таблицы html, которые расположены в разных подразделениях, но не может получить их одновременно (разбор начинается с первой таблицы и переходит на вторую, которую мне нужно прочитать на одном и том же уровне строки данных)

  Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load

    Dim web As New HtmlWeb
    Dim docmech As HtmlDocument = web.Load("http://www.eurovent-certification.com/en/Certified_products/Access_by_programme.php?lg=en&rub=04&srub=01&select_prog=AHU&select_partic=664&select_marque=YORK&select_class=MB+%2F+MB+%2F+MECH")
    Dim MechNodes As HtmlNodeCollection = docmech.DocumentNode.SelectNodes("/html/body/table/tr/td[2]/table[6]/tr[1]/td[2]/div[2]/table//nobr[a[@class='certificat-pdf']] | /html/body/table/tr/td[2]/table[6]/tr[1]/td[2]/div[3]/table//td[@class='tabGrisClair > normal']")
    Dim ColumnCount As Integer = 1
    Dim TempListItem As New ListViewItem


    If Not IsNothing(MechNodes) Then

        For Each item As HtmlNode In MechNodes
            If item.Name = "nobr" And item.InnerText <> "" And item.Attributes.Count = 0 Then
                Dim Name As String = item.InnerText.Replace(vbLf, "").Replace(vbCr, "").Replace(vbTab, "").Replace("&nbsp;", "")
                TempListItem = ListView1.Items.Add(Name)

            Else
                If item.Attributes("class").Value = "tabGrisClair > normal" Then

                    Dim SubName As String = item.InnerText.Replace(vbLf, "").Replace(vbCr, "").Replace(vbTab, "")
                    TempListItem = ListView1.Items.Add(SubName)
                End If
            End If
        Next

    End If

Информация о Xpath таблиц;

  • 1-я таблица расположена во втором div и номер строки начинается от 4 до 10 и 1 столбец)

/html / body / table / tr / td [2] / table [6] / tbody / tr [1] / td [2] / div [2] / table / tr [4] / td / nobr ---> PU3055(Целевой текст)

  • 2-я таблица, расположенная в третьем div и номере строки, начиная с 4 до 10, но 14 столбцов)

/ html / body / table / tr / td[2] / таблица [6] / tr [1] / td [2] / div [3] / table / tbody / tr [4] / td [2] ---> D1 (M) (целевой текст)

Как я могу добавить данные обеих таблиц в одно и то же представление списка (с тем же номером строки, показанным на веб-странице?

Я получаю результат как этот; Результат разбора по коду

вместо целиРезультат: Целевой результат с веб-страницы

1 Ответ

0 голосов
/ 09 октября 2018

Простейшим способом сделать это было бы два для каждого цикла.

После добавления моделей (элементов), зациклить их или что-то подобное, затем добавить столбцы (подпункты).

15 строквсе для всего.enter image description here В качестве альтернативы вы можете создать две коллекции (A и B), а затем читать по одной из каждой (например, A1, B1, A2, B2 ... и т. Д.).

Complete: enter image description here

...