C # - разобрать исходный код HTML как XML - PullRequest
3 голосов
/ 10 июня 2010

Я хотел бы прочитать по динамическому URL, который содержит файл HTML, и прочитать его как файл XML на основе узлов (тегов HTML). Это как-то возможно?

Я имею в виду этот HTML-код:

            <table class="bidders" cellpadding="0" cellspacing="0"> 

            <tr class="bidRow4"> 
                <td>kucik (automata)</td> 
                <td class="right">9 374 Ft</td> 
                <td class="bidders_date">2010-06-10 18:19:52</td> 
            </tr> 

            <tr class="bidRow4"> 
                <td>macszaf (automata)</td> 
                <td class="right">9 373 Ft</td> 
                <td class="bidders_date">2010-06-10 18:19:52</td> 
            </tr> 

            <tr class="bidRow2"> 
                <td>kucik (automata)</td> 
                <td class="right">9 372 Ft</td> 
                <td class="bidders_date">2010-06-10 18:19:42</td> 
            </tr> 

            <tr class="bidRow2"> 
                <td>macszaf (automata)</td> 
                <td class="right">9 371 Ft</td> 
                <td class="bidders_date">2010-06-10 18:19:42</td> 
            </tr> 

            <tr class="bidRow0"> 
                <td>kucik (automata)</td> 
                <td class="right">9 370 Ft</td> 
                <td class="bidders_date">2010-06-10 18:19:32</td> 
            </tr> 

            <tr class="bidRow0"> 
                <td>macszaf (automata)</td> 
                <td class="right">9 369 Ft</td> 
                <td class="bidders_date">2010-06-10 18:19:32</td> 
            </tr> 

            <tr class="bidRow8"> 
                <td>kucik (automata)</td> 
                <td class="right">9 368 Ft</td> 
                <td class="bidders_date">2010-06-10 18:19:22</td> 
            </tr> 

            <tr class="bidRow8"> 
                <td>macszaf (automata)</td> 
                <td class="right">9 367 Ft</td> 
                <td class="bidders_date">2010-06-10 18:19:22</td> 
            </tr> 

            <tr class="bidRow6"> 
                <td>kucik (automata)</td> 
                <td class="right">9 366 Ft</td> 
                <td class="bidders_date">2010-06-10 18:19:12</td> 
            </tr> 

            <tr class="bidRow6"> 
                <td>macszaf (automata)</td> 
                <td class="right">9 365 Ft</td> 
                <td class="bidders_date">2010-06-10 18:19:12</td> 
            </tr> 

        </table> 

Я хочу разобрать это в ListView (или Grid), чтобы создать строки с содержащимися данными. Все tr - это разные строки, и все td в данном td являются столбцами в данном ряду.

А также я хочу, чтобы он работал максимально быстро, так как он обновился бы через 5 секунд.

Есть ли библиотека для этого?

Ответы [ 4 ]

8 голосов
/ 10 июня 2010

Я рекомендую HTML Agility Pack . Вам придется самостоятельно обрабатывать часть графического интерфейса. Он не требует корректного HTML, но создает HtmlDocument, аналогичный XmlDocument.

0 голосов
/ 10 июня 2010

Я обычно использую Fast XPath Reader в сочетании с LinqToXML для работы.Хотя он довольно старый (2007 год).

Я не знал об Agility Pack HTML, поэтому не могу сказать, как он сравнивается (как по производительности, так и по простоте использования).

0 голосов
/ 10 июня 2010

Почему бы просто не заменить строку, чтобы преобразовать таблицу HTML в XML:

   <table class="bidders" cellpadding="0" cellspacing="0">

становится:

   <?xml version="1.0" encoding="UTF-8"?>

и

  <tr class="bidRow4">

становится

  <item>

и

 <td class="right">

становится

 <field1>

и т.д.

РЕДАКТИРОВАТЬ 1:

Я также думаю, что класс DataSet имеет:

.ReadXML

метод, позволяющий связать данные с этим набором данных:

    DataSet ds = new DataSet();
    ds.ReadXml("foo.xml");
    DataGrid.DataSource = ds;
    DataGrid.DataBind();

или что-то подобное

0 голосов
/ 10 июня 2010

Конечно, это возможно.Но будьте осторожны - совместимый процессор xml должен обрабатывать все, что не правильно, как фатальную ошибку.Это означает, что он будет работать только с документами, которые проходят проверку на строгий xhtml.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...