android - 使用 Groovy 在 Android 上仅下载部分 XML

标签 android groovy xml-parsing

我一直在学习 Tim Buchalka 在 Udemy 上开设的“学习 Android Lolipop 开发”类(class)。他用 Java 授课,但我认为用 groovy 授课会是一次很好的学习体验。话虽这么说,我已经到了他正在创建一个应用程序的地步,该应用程序可以从 Apple's Website 下载排名前 10 的免费应用程序 XML。

我编写的应用程序中用于下载 XML 的部分是:

public class XMLDownloader extends AsyncTask<Object, Void, String>{
String myXMLData

@Override
protected String doInBackground(Object... urls) {
    try {
        myXMLData = downloadXML((String) urls[0])
    }
    catch (IOException e) {
        return "Unable to download XML file"
    }
    return ""
}

protected void onPostExecute(String result) {
    Log.d("OnPostExecute", myXMLData)
}

String downloadXML(String url) throws IOException {

    String xmlContents = ""

    BufferedReader reader

    try {
        reader = new URL(url).openStream().newReader()

        while (reader.any()) {
            xmlContents += "${reader.readLine()}\n"
        }

        return xmlContents;

    } catch (Exception e) {
        e.printStackTrace()
        return null
    } finally {
        reader?.close()
    }

}
}

出于某种原因,它似乎没有下载完整的 XML。

protected void onPostExecute(String result) {
    Log.d("OnPostExecute", myXMLData)
}

仅打印前 31 行。仅下载前 31 行就无法解析 XML。

使用XmlPullParser解析,得到

06-22 14:58:17.245 30926-30926/com.lategame.top10downloader W/System.err﹕ org.xmlpull.v1.XmlPullParserException: expected: /entry read: summary (position:END_TAG @17:54 in java.io.StringReader@158cb17f)

什么可能导致 XML 只下载部分内容?

另外,请忽略我正在使用 AsyncTask<Object, Void, String> 的事实并转换到 String ,而不是使用 AyncTask<String, Void, String> 。这是解决另一个问题的方法。

最佳答案

显然,罪魁祸首是 logcat 具有日志的最大长度。 它正在下载完整的 XML,但我无法全部注销。

关于android - 使用 Groovy 在 Android 上仅下载部分 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30987937/

相关文章:

iOS 解析 XML iTunes :image tag

android - 当 MySql 数据库服务器上的数据发生变化时,如何在 Android 应用程序中同步 SQLite 数据库

java - Groovy:以 Maps 作为键的 MultiValueMap

Eclipse -> 调试 -> 表达式不起作用

java - 如何从 java 中的 DOM 解析器读取特定的 XML 标签<示例提到>

JAVA : Parsing the Xml Value using javax. ml 和 Xpath 选项

android - 未知错误 "Thread starting during runtime shutdown"

android - 使用 scrollToPosition 时如何将项目设置为 RecyclerView 的中心

android - 以编程方式绑定(bind)到 Android 上的 BLE 设备

java - 使用 groovy/ratpack 发送电子邮件