2011-09-18 115 views
0

我使用htmlcleaner来解析HTML文件。这里是一个html文件的例子。从html文件获取链接

.......<div class="name"><a href="http://example.com">Name</a></div>;...... 

我得到使用该结构的字Name在我的代码

HtmlCleaner cleaner = new HtmlCleaner(); 
      CleanerProperties props = cleaner.getProperties(); 
      props.setAllowHtmlInsideAttributes(true); 
      props.setAllowMultiWordAttributes(true); 
      props.setRecognizeUnicodeChars(true); 
      props.setOmitComments(true); 
      rootNode = cleaner.clean(htmlPage); 
TagNode linkElements[] = rootNode.getElementsByName("div",true); 
      for (int i = 0; linkElements != null && i < linkElements.length; i++) 
      { 
      String classType = linkElements.getAttributeByName("name"); 
       if (classType != null) 
       { 
        if(classType.equals(class)&& classType.equals(CSSClassname)) { linkList.add(linkElements); } 
       } 

       System.out.println("TagNode" + linkElements.getText()); 
       linkList.add(linkElements); 
      } 
      and then add all of this name's to listview using 
TagNode=linkelements.getText().toString() 

;

但我不明白我怎么能得到我的例子中的链接。我想要链接http://exxample.com但我不知道该怎么做。

请帮帮我。我阅读教程并使用了该功能,但不能。

P.S.对不起,我的英文不好

回答

0

我不使用HtmlCleaner,但根据javadoc你做这种方式:

List<String> links = new ArrayList<String>(); 
for (TagNode aTag : linkElements[i].getElementListByName ("a", false)) 
{ 
    String link = aTag.getAttributeByName ("href"); 
    if (link != null && link.length() > 0) links.add (link); 
} 

PS:你清楚地张贴不可编译的代码 PPS:你为什么不使用一些库,从HTML创建一个普通的DOM树?通过这种方式,您可以使用通用的API处理分析的文档。

+0

thx为您的答案)是的....我注意到,我不在这里复制我使用的所有代码...但应用程序是工作....我的问题是从网站获取链接.. .Htmlcleaner在解析Android中的html时更容易使用...&我可以使用htmlcleaner创建一个普通的DOM树...)我试试) –