Android html解析应用程序htmlcleaner

时间:2011-09-13 16:40:37

标签: android html-parsing htmlcleaner

嗨,我的第一篇文章就在这里我正在编写它,因为我经历了google在htmlcleaner上所知道的每一个例子......我无法让我的项目运行;(我试着让Android应用程序获取并显示来自flash的数据网页。想法是只获取最重要的数据,以便用户不会浪费时间,处理能力,试图在智能手机上搜索这些页面时会紧张......这是一个针对特定国家/地区的网页...因此是国家特定的应用程序。我要解析的页面是这部分

    <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类填充来自li lements的数据。一个cl对象为一个li元素。我需要提取描述,价格,材料,图像链接,来自superClass的东西,意思是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 :(得分:0)

String classType =liElements.getAttributeByName("class");
if(classType!=null && classType.equals("genre........");
liElements[i]