Java Android从url.xml中提取解析器
我已经搜索了两天了,我可能已经看到了一个解决我问题的方法,尽管我还没有找到一个我理解的方法 我正在学习本教程- 我知道我需要改变的两个方面是 此处1Java 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.
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");
}
}