我是 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/