首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将xml文档作为输入传递给android xml pullparser

如何将xml文档作为输入传递给android xml pullparser
EN

Stack Overflow用户
提问于 2012-12-14 22:52:26
回答 1查看 721关注 0票数 2

在我的应用程序中,用户可以下载一个存储在内存中的XML文件。给出这个文件到XMLPullParser的绝对路径,有什么方法可以传递这个文件吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-14 23:49:40

由于内部保存的文件不需要绝对路径,您只需要文件名:

代码语言:javascript
运行
复制
final String xmlFile="fileName";
 FileInputStream fis = null;
            InputStreamReader isr = null;
            char[] inputBuffer = null;
            String data = null;
            ArrayList<String> items = new ArrayList<String>();
            try {
                fis = getApplicationContext().openFileInput(xmlFile);
                isr = new InputStreamReader(fis);
                inputBuffer = new char[fis.available()];
                isr.read(inputBuffer);
                data = new String(inputBuffer);
                isr.close();
                fis.close();
                } catch (FileNotFoundException e3) {
                // TODO Auto-generated catch block
                    e3.printStackTrace();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            XmlPullParserFactory factory = null;
            try {
                factory = XmlPullParserFactory.newInstance();
                } catch (XmlPullParserException e2) {
                // TODO Auto-generated catch block
                e2.printStackTrace();
                }
            factory.setNamespaceAware(true);
            XmlPullParser xpp = null;
            try {
                xpp = factory.newPullParser();
                } catch (XmlPullParserException e2) {
                // TODO Auto-generated catch block
                e2.printStackTrace();
                }
            try{
                xpp.setInput( new StringReader (data) );
                } catch (XmlPullParserException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
                }
             int eventType = 0;
             try{
                 eventType = xpp.getEventType();
                } catch (XmlPullParserException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
                }
             while (eventType != XmlPullParser.END_DOCUMENT){
                 if(eventType == XmlPullParser.START_DOCUMENT) {
                     System.out.println("Start document");
                 }else if(eventType == XmlPullParser.START_TAG) {
                     System.out.println("Start tag "+xpp.getName());
                 }else if(eventType == XmlPullParser.END_TAG) {
                     System.out.println("End tag "+xpp.getName());
                 }else if(eventType == XmlPullParser.TEXT) {
                     items.add(xpp.getText());
                 }
                 try{
                     eventType = xpp.next();
                }catch (XmlPullParserException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                }
             }
            String item1=contact.get(0);
        String item2=contact.get(1);
        String item3 = contact.get(2);
        String item4=contact.get(3);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13880987

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档