java - 如何将 XML 输入流解析为字符串或对象 (Android studio)

标签 java android xml parsing asynchronous

我是 Android 和 Java 新手。 (我可以用 C# 编程)并且我尝试从互联网检索一些 XML 文件并将其解析为对象。我现在正在为此挣扎几个小时。我认为这不是很复杂,但我找不到正确的方法。

我从 this 开始但里面有很多我不需要的东西,所以我尝试只用我需要的东西编写一些干净的代码。我在互联网上阅读了很多文章,但我无法让它们工作......

我在 android studio 中使用一个 Activity 创建了一个默认项目。我在此 Activity 中创建了一个名为 XmlManager 的子类。该子类扩展了 AsyncTask。这是其中的方法:

private class XmlManager extends AsyncTask<String,String,String> {
@Override
protected String doInBackground(String... inputUrl)
{
    Log.i("XML Status", "ASync proces started");
    getStream(inputUrl[0]);
    Log.i("XML Status", "ASync proces finished");
    return null;
}

@Override
protected void onPostExecute(String result)
{
    //Here i want to return the list with objects...
    // OR an string with the XML so i can parse it somewhere else,
    // I dont know what is the best practice
}

private void getStream(String urlString) {

    URL url =null;
    HttpURLConnection urlConnection = null;
    InputStream is = null;

    try {
        url = new URL(urlString);
        Log.i("Status", "Connection opened");
        urlConnection  = (HttpURLConnection) url.openConnection();
        urlConnection.setRequestMethod("GET");
        urlConnection.connect();

        is = urlConnection.getInputStream();
        Log.i("Status", "Streamreader filled");
    }
    catch (Exception e) {
        Log.e("Error",e.getMessage().toString());
    }
    finally {
        if (urlConnection != null) {
            urlConnection.disconnect();
            Log.i("Status","Connection disconnected");
        }
    }
}

有人可以帮我吗?或者有一个可行且简单的示例的链接(我找不到:'()

我读到了一些关于用于将 XML 解析为对象的简单 XML 库的内容,这是这样做的方法吗?尝试将 XML 作为字符串或其他内容检索,然后使用任何库解析它?

提前致谢!

最佳答案

您可以通过JAXB将xml解析为java对象。

1) 您可以通过 xmlspy 将 xml 更改为 xsd。

2) 使用eclipse插件(http://sourceforge.net/projects/jaxb-builder/)生成java类。

3)使用jaxb将xml解析为java对象。示例代码如下:

 JAXBContext context = JAXBContext.newInstance(XXXX.class);
 Unmarshaller unmarshaller = context.createUnmarshaller();
 XXXX obj = unmarshaller.unmarshal(is);

XXXX是第二步生成java类。

关于java - 如何将 XML 输入流解析为字符串或对象 (Android studio),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34922165/

相关文章:

java - Spring MVC中拦截器和过滤器的区别

java - 如何用方法绘制外旋轮线

java格式化文本

python - Odoo 10 - 在标准树和日历 View 中显示来自 One2many 的字段

ruby - 判断两个 Nokogiri 节点是否等价

python - 使用 Python 将 Oracle 数据库表导出为 XML 文件?

java - 我该如何解决这个程序

android - AOSP Kotlin 支持

android - Activity 在 alertDialog show() 方法处泄漏了窗口

java - Android Studio Gradle 预构建步骤