0

我已经搜索了两天,我可能已经看到了可以解决我的问题的解决方案,尽管我还没有找到我理解的解决方案。

我正在关注本教程 -简单 XMLPullParser 教程

我知道我需要改变的两个领域是

这里1

public List<Employee> parse(InputStream is) {
    XmlPullParserFactory factory = null;
    XmlPullParser parser = null;
    try {
        factory = XmlPullParserFactory.newInstance();
        factory.setNamespaceAware(true);
        parser = factory.newPullParser();

        parser.setInput(is, null);

        int eventType = parser.getEventType();

在这里2

 List<Employee> employees = null;
    try {
        XMLPullParserHandler parser = new XMLPullParserHandler();
        employees = parser.parse(getAssets().open("employees.xml"));

这是来自工作示例,下面是我想要实现的,删除它

雇员 = parser.parse(getAssets().open("employees.xml"));

我试图得到类似的东西

URL url=new URL(" http://www.example.xml ");

URLConnection 连接 = url.openConnection();

InputStream in = connection.getInputStream();

员工 = parser.parse(in);

第一部分我不太确定要更改什么,第二部分我知道我需要添加 url,并打开一个连接。然后更改 employees = parser... 行,但到目前为止还没有运气获得有效的响应。

我添加了 android.permission.INTERNET。

我还在 assets 文件夹中添加了自己的 XML 文件,这是我要解析的 url 的副本,效果很好。

任何帮助将不胜感激。

4

1 回答 1

0

请在此处查看我的答案。Android:XmlpullParser 异常

另外,请确保在

 XmlUtils.beginDocument(parser,"results");

“结果”是您的 xml 的第一个节点名称。在您的情况下,它可能是“员工”

此外,对于网络相关的服务,可能无法通过主 UI 线程访问。

请使用 AsyncTask 并在 doInBackground() 方法中添加您的方法。

 private class DownloadFilesTask extends AsyncTask<String, Void, String> {
 protected Long doInBackground(String... urls) {
   //put your xml parsing code here.
 }

 protected void onProgressUpdate(Integer... progress) {
     setProgressPercent(progress[0]);
 }

 protected void onPostExecute(Long result) {
     showDialog("Downloaded " + result + " bytes");
 }
}
于 2013-04-08T05:50:44.517 回答