Jsoup и Android

1

Я просмотрел документацию по обзору JSoup Selector, но у меня все еще возникают проблемы. Я хочу получить информацию с веб-страницы, и эта информация хранится в таблице. Как только я получаю это, я хочу разбиться на отдельные строки, чтобы использовать его позже; но я не могу это сделать.

У меня JSoup работает нормально, но он не работает, когда я пытаюсь ссылаться на конкретную таблицу, которую я хочу на Id, например:

try 
                {
                    Document doc = Jsoup.connect( myHtml ).get();

                    Elements pTag = doc.select( "table#ctl00_ContentPlaceHolder1_tblPasses" );
                    //Elements links = doc.select( "a[href]" );
                    String pTagString = pTag.html();

                    // Set the textview to the results of the Jsoup query
                    setData( pTagString );

                    // Reset msg
                    msg = null;
                    msg = handler.obtainMessage( UPDATE_UI );
                    handler.sendMessage( msg );

                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

Вот фрагмент кода HTML Im, пытающийся добраться до:

<table id="ctl00_ContentPlaceHolder1_tblPasses" class="standardTable" cellspacing="0" cellpadding="4" rules="cols" border="2" style="background-color:White;border-color:Gray;border-width:2px;border-style:Solid;border-collapse:collapse;">
<tr class="tablehead" style="border-width:0px;border-style:None;">
    <td valign="middle" rowspan="2">Date</td><td id="ctl00_ContentPlaceHolder1_MagHeader" valign="middle">Brightness</td><td align="center" colspan="3">Start</td><td align="center" colspan="3">Highest point</td><td align="center" colspan="3">End</td>
</tr><tr class="tablehead">
    <td id="ctl00_ContentPlaceHolder1_MagHeader2" align="center">(<a id="ctl00_ContentPlaceHolder1_linkMagnitude" title="show definition of this term" href="glossary.aspx?term=magnitude&amp;lat=54.5156&amp;lng=-6.06863&amp;loc=Unspecified&amp;alt=0&amp;tz=GMT">mag</a>)</td><td align="center">Time</td><td><a id="ctl00_ContentPlaceHolder1_linkAltitude" title="show definition of this term" href="glossary.aspx?term=altitude&amp;lat=54.5156&amp;lng=-6.06863&amp;loc=Unspecified&amp;alt=0&amp;tz=GMT">Alt.</a></td><td><a id="ctl00_ContentPlaceHolder1_linkAzimuth" title="show definition of this term" href="glossary.aspx?term=azimuth&amp;lat=54.5156&amp;lng=-6.06863&amp;loc=Unspecified&amp;alt=0&amp;tz=GMT">Az.</a></td><td align="center">Time</td><td>Alt.</td><td>Az.</td><td align="center">Time</td><td>Alt.</td><td>Az.</td>

Это только часть таблицы, там намного больше, но пока я хочу получить эту таблицу и ее первую строку. Есть предположения?

Обновить

Я попробовал это:

Elements table = doc.select( "table#ctl00_ContentPlaceHolder1_tblPasses" );
Element first_Row = table.first();

//Elements links = doc.select( "a[href]" );
String first_Row_Strg = first_Row.html().toString();

// Set the textview to the results of the Jsoup query
setData( first_Row_Strg );

Но он фактически возвращает всю таблицу, а не первую строку. Должен ли я попытаться определить фактический идентификатор строки в таблице? Если так, то как ты это делаешь?

Теги:
jsoup

1 ответ

1
Лучший ответ

думайте иначе, выберите непосредственно ребенка из родителя.

Element first_row = doc.select("table#ctl00_ContentPlaceHolder1_tblPasses tr").first();

  • 0
    Привет, приятель - просто чтобы обновить тебя - да, у меня все получилось, хотя мой точный метод основан на приманке, так как я решил сослаться на каждый компонент поверх предыдущего. Как таблица> строки> первая строка> firstCell, используя [href] и т. Д. И т. Д. Спасибо за помощь: D

Ещё вопросы

Сообщество Overcoder
Наверх
Меню