Разбор тега <table>из html, затем отображение в веб-просмотре - PullRequest
0 голосов
/ 12 мая 2011

Мне нужно взять таблицу с веб-сайта и поместить ее в приложение.Моя методология такова: подключиться к сайту, поместить HTML в строку, поместить данные таблицы в веб-просмотр.Я успешно подключился к веб-сайту, поместил HTML-код в переменную myString и даже загрузил myString в веб-просмотр в качестве теста.

Мой вопрос заключается в том, каков наилучший способ загрузки только <table>все здесь </table>.Другими словами, я хочу только данные таблицы.Я экспериментировал с xpath, но не могу заставить его работать.Кроме того, забегая вперед к следующему шагу, мне, в конечном счете, придется изменить отступы и прочее в таблице, чтобы они лучше выглядели на устройстве?

1 Ответ

0 голосов
/ 24 мая 2011

Если я вас правильно понимаю, что-то подобное может служить вашим целям:

int start = myString.indexOf("<table");
if( start < 0 )
    Log.d(this.toString(), "Table start tag not found");
else {
    int end = myString.indexOf("</table>", start) + 8;
    if( end < 0 )
        Log.d(this.toString(), "Table end tag not found");
    else
        myString = "<html><body>" + myString.substring(start, end) + "</body></html>";
}

Затем загрузите myString в ваш WebView, и он должен содержать только первую таблицу с исходной веб-страницы.


Редактировать: в приведенном выше примере учитывается регистр, т. Е. Не будет найден тег <TABLE> в верхнем регистре. Хотя это может быть не самый эффективный метод, одним из способов сделать его без учета регистра будет преобразование строки в строчные перед ее поиском, например ::10000

int start = myString.toLowerCase().indexOf("<table");
...
int end = myString.toLowerCase().indexOf("</table>", start) + 8;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...