您可以使用Android的WebView来加载并解析HTML文件,然后使用JavaScript代码来获取并打印所有div标签的内容。以下是一个示例代码:

import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.webkit.WebResourceResponse;
import android.webkit.WebViewClient;
import android.webkit.WebSettings;
import android.webkit.WebChromeClient;
import android.webkit.ConsoleMessage;
import android.webkit.JavascriptInterface;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

    private WebView webView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        webView = findViewById(R.id.webview);
        WebSettings webSettings = webView.getSettings();
        webSettings.setJavaScriptEnabled(true);

        webView.setWebViewClient(new WebViewClient(){
            @Override
            public void onPageFinished(WebView view, String url) {
                super.onPageFinished(view, url);
                // 页面加载完成后执行JavaScript代码
                view.loadUrl("javascript:window.HTMLOUT.processHTML('<html>'+document.getElementsByTagName('html')[0].innerHTML+'</html>');");
            }
        });

        webView.addJavascriptInterface(new MyJavaScriptInterface(), "HTMLOUT");

        // 加载html文件
        webView.loadUrl("file:///android_asset/test.html");
    }

    class MyJavaScriptInterface {
        @JavascriptInterface
        @SuppressWarnings("unused")
        public void processHTML(String html) {
            // 解析HTML的div标签内容
            // 这里可以使用正则表达式或者其他方法提取div标签的内容
            // 这里只是简单地使用字符串截取的方式提取内容
            int startIndex, endIndex;
            String divStartTag = "<div";
            String divEndTag = "</div>";
            startIndex = html.indexOf(divStartTag);
            while (startIndex != -1) {
                endIndex = html.indexOf(divEndTag, startIndex);
                if (endIndex != -1) {
                    String divContent = html.substring(startIndex, endIndex + divEndTag.length());
                    System.out.println(divContent);
                }
                startIndex = html.indexOf(divStartTag, endIndex);
            }
        }
    }
}

上述代码中,我们创建了一个WebView并设置其WebSettings,使其可以执行JavaScript代码。然后,我们设置了WebViewClient的onPageFinished方法,在页面加载完成后执行JavaScript代码。JavaScript代码使用document.getElementsByTagName('html')[0].innerHTML获取整个HTML内容,并调用Java代码的processHTML方法传递HTML内容。Java代码通过字符串截取的方式提取所有div标签的内容,并打印输出。

请注意,上述代码中的test.html文件应该位于项目的assets目录下。您可以根据实际情况修改HTML文件的路径和文件名。

希望对您有帮助!

Android WebView 读取 HTML 文件并提取所有 Div 标签内容

原文地址: https://www.cveoy.top/t/topic/pa48 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录