【问题标题】:How to parse results provided by Java script in Android如何在Android中解析Java脚本提供的结果
【发布时间】:2011-10-27 19:29:04
【问题描述】:

我正在开发应该向网页表单发送两个参数的 android 应用程序,我正在使用 HttpClient、HttpPost、HttpResponse 来执行此操作。

    HttpResponse responsePOST = client.execute(post);
    HttpEntity resEntity = responsePOST.getEntity();
    rez = EntityUtils.toString(resEntity);

在 rez 中是来自页面的完整 HTML,我想在 TableLayout 中显示结果但无法获取它们。现在,我得到的结果是由 Javascript 函数提供的,Jsoup 无法解析它们,它们只是网页的一部分。如何在不尝试使用正则表达式解析 rez 字符串的情况下获得这些结果?

【问题讨论】:

    标签: javascript android html parsing jsoup


    【解决方案1】:

    我会避免返回 HTML 作为数据交换机制。如果您只对数据感兴趣,我会改为返回 JSON (Link)。我使用 GSON 库解析从我的 Web 端点/api 返回的 JSON 取得了巨大成功。

    编辑

    看到你的评论。如果您需要遍历 HTML DOM,看起来 JTidy 是一个不错的选择。请参阅 this StackOverflow 问题。

    【讨论】:

    • Tnx 回复,但我指的页面是 www.mtel.ba/imenik/rezultat.php (您在文本框中输入名称或 nuber 并从下拉列表中选择城镇,然后您获取结果,例如电话号码或地址),这不是我的网页(我无权访问页面 api)。所以我不知道该怎么做。
    • 我还尝试将 rez String 放入 webview code String html = getIntent().getExtras().getString("html"); setContentView(R.layout.browser); WebView webView = (WebView) findViewById(R.id.webview); webView.getSettings().setJavaScriptEnabled(true); webView.setWebChromeClient(new WebChromeClient()); webView.loadData(html, "text/html", "utf-8");但 webview 没有显示任何有意义的内容。
    • 查看我对答案的编辑。看起来 JTidy (stackoverflow.com/questions/238036/java-html-parsing) 是在 java 中解析 HTML 的不错选择
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-01
    • 1970-01-01
    • 2014-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多