【问题标题】:Get HTML Code from WebSite and remove unnecessary Code - Only display the Table in WebView从网站获取 HTML 代码并删除不必要的代码 - 仅在 WebView 中显示表格
【发布时间】:2016-11-13 07:41:22
【问题描述】:

我正在尝试让我的应用与网站同步,并仅显示网站的表格。示例:普通的 HTML 框架,表格在 div#table 中,所以我做得很简单,并构建了 HTML 框架:

String html = "<html> " +
        "<head>" +
        "</head>" +
        "<body style=\"background-color: transparent\">" +
        "?body" +
        "</body>" +
        "</html>";

然后我尝试用表格替换 ?body,但这是我的问题:我不知道如何做到这一点,然后将其加载到透明的 WebView 中。我在网上找到了一些代码,并试图让它适用于我的情况,所以这是:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    List<String> links = new ArrayList();
    setContentView(SliderCreator.createSlider(R.layout.activity_news, this));
    wv = (WebView) findViewById(R.id.newsWebView);
    wv.setBackgroundColor(Color.TRANSPARENT);
    try {
        String finalHTML = getIntent().getStringExtra("html");
        if (!finalHTML.contains("<html>")) {
            String css = "";
            for(String link : links) {
                css+=Utils.getHTML(link);
            }
            finalHTML = html.replace("?body", getIntent().getStringExtra("html")).replace("?css", css);
        }
        wv.getSettings().setJavaScriptEnabled(true);
        //open URLs in external Browser
        wv.setWebViewClient(new WebViewClient() {
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.getContext().startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
                return true;
            }
        });
        wv.loadDataWithBaseURL("", finalHTML, "text/html", "UTF-8", "");
    } catch(Exception e) {
        Toast.makeText(this, "An error occured...", Toast.LENGTH_LONG).show();
    }

但这不起作用..有人可以帮我解决这个问题吗? (顺便说一句:我用 RegEx 试过,没用,我用 JSoup 试过,也没用...)

【问题讨论】:

  • 你试过调试它吗?您确定从 `String finalHTML = getIntent().getStringExtra("html");` 获得正确的值吗?
  • 添加一些 println,看看你加载到 WebView 中的 HTML 是否真的是你想要的。究竟什么是“不起作用”?
  • @JonasCz 我对编程很陌生,我刚刚添加了 println,是的,你是对的,我没有得到任何我想的东西。我认为问题是我可能需要一个 AsyncTask,但我不知道该怎么做。所以不起作用的是我只在我的 webview 中显示一个 div 标签,我想删除其他的东西.
  • 如果您向我们展示您将 HTML 放入 Intent 的代码(您将 html 额外字符串添加到 Intent 中,可能是在另一个 Activity 中,也许我可以告诉您出了什么问题。
  • @JonasCz 我只是要对其进行硬编码。 xD

标签: android html regex jsoup


【解决方案1】:

如果不使用 RegEx,请尝试使用 HTML Agility Pack

请注意,如果文本包含嵌套表格标签,您的 RegEx 可能无法正常工作

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-01
    • 1970-01-01
    • 2019-03-22
    相关资源
    最近更新 更多