Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android从url.xml中提取解析器_Java_Android_Xmlpullparser_Android Pullparser - Fatal编程技术网

Java Android从url.xml中提取解析器

Java Android从url.xml中提取解析器,java,android,xmlpullparser,android-pullparser,Java,Android,Xmlpullparser,Android Pullparser,我已经搜索了两天了,我可能已经看到了一个解决我问题的方法,尽管我还没有找到一个我理解的方法 我正在学习本教程- 我知道我需要改变的两个方面是 此处1 public List<Employee> parse(InputStream is) { XmlPullParserFactory factory = null; XmlPullParser parser = null; try { factory = XmlPullParserFactory.

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

我正在学习本教程-

我知道我需要改变的两个方面是

此处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();
公共列表解析(InputStream为){
XmlPullParserFactory工厂=null;
XmlPullParser=null;
试一试{
factory=XmlPullParserFactory.newInstance();
factory.setNamespaceAware(true);
parser=factory.newPullParser();
setInput(is,null);
int eventType=parser.getEventType();
这里是2

 List<Employee> employees = null;
    try {
        XMLPullParserHandler parser = new XMLPullParserHandler();
        employees = parser.parse(getAssets().open("employees.xml"));
列出员工=null;
试一试{
XMLPullParserHandler parser=新的XMLPullParserHandler();
employees=parser.parse(getAssets().open(“employees.xml”);
这是从工作的例子,下面是从我试图实现,删除这个

employees=parser.parse(getAssets().open(“employees.xml”)

我试着得到类似的东西

URL=新URL(“”)

URLConnection=url.openConnection()

InputStream in=connection.getInputStream()

employees=parser.parse(in)

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

我已经添加了android.permission.INTERNET

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


任何帮助都将不胜感激。

请在此处查看我的答案

另外,确保

 XmlUtils.beginDocument(parser,"results");
“results”是xml的第一个节点名。在您的情况下,它可能是“employees”

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

请使用AsyncTask并将您的方法添加到doInBackground()方法中

私有类下载文件任务扩展异步任务{
受保护的长doInBackground(字符串…URL){
//将xml解析代码放在这里。
}
受保护的void onProgressUpdate(整数…进度){
setProgressPercent(进度[0]);
}
受保护的void onPostExecute(长结果){
showDialog(“下载的”+结果+“字节”);
}
}

谢谢,我会尝试一下你的答案,我只是不明白为什么我不能解析主活动中第二个片段中的url。我会稍微更新我的问题。
 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");
 }
}