Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Android HTML Parser示例大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在研究许多用于 android的HTML解析器.我尝试了很多库.谁能告诉我一个如何做的例子.我想提取每个标签内容.请帮忙.我坚持这个.

解决方法

请看这个清单.实际上,那里有很多选择.例如,我选择了 HtmlCleaner库来实现.以下是一个用法例:

项目结构:

实际源代码

public class HtmlHelper {
    TagNode rootNode;

    public HtmlHelper(URL htmlPagE) throws IOException
    {
        HtmlCleaner cleaner = new HtmlCleaner();
        rootNode = cleaner.clean(htmlPagE);
    }

    List<TagNode> getLinksByClass(String CSSClassName)
    {
        List<TagNode> linkList = new ArrayList<TagNode>();

        TagNode linkElements[] = rootNode.getElementsByName("a",truE);
        for (int i = 0; linkElements != null && i < linkElements.length; i++)
        {
            String classType = linkElements[i].getAttributeByName("class");
            if (classType != null && classType.equals(CSSClassName))
            {
                linkList.add(linkElements[i]);
            }
        }

        return linkList;
    }
}

public class StackParser extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceStatE) {
        super.onCreate(savedInstanceStatE);
        setContentView(R.layout.main);

        Button button = (Button)findViewById(R.id.parsE);
        button.setOnClickListener(myListener);
    }

    private ProgressDialog pd;

    private OnClickListener myListener = new OnClickListener() {
        public void onClick(View v) {
            pd = ProgressDialog.show(StackParser.this,"Working...","request to server",true,falsE);
            new ParseSite().execute("http://www.stackoverflow.com");
        }
    };

    private class ParseSite extends AsyncTask<String,Void,List<String>> {

        protected List<String> doInBACkground(String... arg) {
            List<String> output = new ArrayList<String>();

            try
            {
                HtmlHelper hh = new HtmlHelper(new URL(arg[0]));
                List<TagNode> links = hh.getLinksByClass("question-hyperlink");

                for (Iterator<TagNode> iterator = links.iterator(); iterator.hasNext();)
                {
                    TagNode divElement = (tagNodE) iterator.next();
                    output.add(divElement.getText().toString());
                }
            }
            catch(Exception E)
            {
                e.printStackTrace();
            }

            return output;
        }

        protected void onPostExecute(List<String> output) {

            pd.dismiss();

            ListView listview = (ListView) findViewById(R.id.listViewData);
            listview.setAdapter(new ArrayAdapter<String>(StackParser.this,android.R.layout.simple_list_item_1,output));
        }
    }
}

大佬总结

以上是大佬教程为你收集整理的Android HTML Parser示例全部内容,希望文章能够帮你解决Android HTML Parser示例所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。