Android html приложение для разбора htmlcleaner - PullRequest
0 голосов
/ 13 сентября 2011

Привет, это мой первый пост, здесь я пишу его, потому что я просмотрел все примеры, о которых знает Google по htmlcleaner ... и я не могу запустить свой проект; (Я пытаюсь заставить приложение Android извлекать и отображать данные из flash rich Идея состоит в том, чтобы получать только самые важные данные, чтобы пользователи не тратили впустую время, вычислительные мощности, нервы на попытки просмотреть эти страницы на своих смартфонах ... Это веб-страница для конкретной страны ... поэтому приложение для конкретной страны. на странице, которую я хочу разобрать, есть эта часть

    <li class="genre-3 genre-7 genre-9 mi-37 ">
    <a href="http://some_link.co"; class="image"><img src="picture.jpg" alt="altTitle"></a>
    <div class="superClass"> 
       <a> aaa </a> 
       <a href="http://some_link_2.co"> bbb </a> 
       <a href="http://some_link_3.co"> ccc </a>
       <a href="http://some_link_4.co"> ddd </a> 
       <a href="http://some_link_5.co"> eee </a> 
    </div>
    <h2><a href="http://some_other_link" class="title">title_of_super_product</a></h2>
    <ul class="icons tooltip-enabled">
       <li class="before"></li>
       <li><img src="15_2.png" alt="15_2"></li>
    </ul>
    <div> </div> 
    <span class="material">some_material</span> 
    <span class="price">0.1USD</span>
    <p class="text"> Some description </p> 
     <a class="button-more" href="http://link_to_more_info"></a> 
    </li>

Выше приведен список ListItem, на веб-странице есть и другие подобные. У меня есть класс Java, готовый заполнить его данными из liments. Один объект clsss для одного элемента li. Мне нужно извлечь описание, цену, материал, ссылки на изображения, материал из суперкласса, то есть aaa, bbb, ccc, ddd и т. Д ... Большой вопрос, как это сделать? Я подумал, что если я начну с создания массива, который будет состоять из элементов li, я смогу искать в каждом из них нужные мне подэлементы ... но это действительно работает; (

    TagNode[] liElements = rootNode.getElementsByName("li", true);
    for (int i=0; liElements != null && i < liElements.length; i++) {   
    if(liElements.getAttributeByName("class").contains("genre"))   
    Log.d("li",liElements.getAttributeByName("class")); }

Дает только первый элемент li, затем он спамит nullPointerExceptions в консоли. Пожалуйста, помогите, я безнадежен; (; (; (

)

1 Ответ

0 голосов
/ 10 ноября 2011
String classType =liElements.getAttributeByName("class");
if(classType!=null && classType.equals("genre........");
liElements[i]
...