如何从HTML WebView中的标签获取信息?

时间:2012-04-19 08:46:09

标签: android html webview

我想知道如何在HTML中的标记内获取信息。我不知道我做得对,因为它没有返回任何信息。我告诉你我的安卓代码,看看你是否可以帮助我。

代码类:

    public class WebView1 extends Activity {
        /** Called when the activity is first created. */   
WebView browse;         
        @Override
        protected void onCreate(Bundle savedInstanceState)      {

            super.onCreate(savedInstanceState);

            setContentView(R.layout.webview1);
         browse = (WebView) findViewById(R.id.webview1);                     

         browse.setWebChromeClient(new WebChromeClient());

         browse.setWebViewClient(new WebViewClient() {
                @Override  
                public void onPageFinished(WebView view, String url) {
                    File input = new File("file:///android_asset/ejemploWebview.html");
                    Document doc = null;
                    try {
                        doc = Jsoup.parse(input, "UTF-8");
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }

                    //http://jsoup.org/cookbook/input/load-document-from-url
                    //Document doc = Jsoup.connect("http://example.com/").get();

                    Element content = doc.getElementById("div");
                    Elements links = content.getElementsByTag("id");
                    String linkId = links.attr("manolo");
                    System.out.print(linkId); //I need that it return Hiiii!
                    }
            });     } }

代码HTML:

 <html>
    <head>
    </head>
    <div id="james">hellooo!</div>
    <div id="paco">byeee!</div>
    <div id="manolo">Hiii!</div>
    </html>

我希望我解释正确! 谢谢! ;)

1 个答案:

答案 0 :(得分:1)

就个人而言,在使用选择器时,我总是从JSoup获得更好的结果,详见here

从您给出的示例中,您似乎想要按ID检索div值,您可以使用:

  

el#id:具有ID的元素,例如DIV#标志

所以要么使用上面的3次出现,要么只选择div并迭代它们做你需要做的事情。

希望这有帮助。

P.S,我发现最简单的事情就是在你调用doc = Jsoup.parse(input, "UTF-8");之后设置一个断点,然后使用你的IDE'表达式构建器来确定哪个选择器可以做你想要的:)