• xml解析


    public class MainActivity extends AppCompatActivity {
        private RequestQueue queues ;
    
        ImageView imageView;
        String xml = "<apps>
    " +
                "  <app>
    " +
                "    <id>1</id>
    " +
                "    <name>Google maps</name>
    " +
                "    <version>1.0</version>
    " +
                "  </app>
    " +
                "  <app>
    " +
                "     <id>2</id>
    " +
                "     <name>chrome</name>
    " +
                "     <version>2.1</version>
    " +
                "  </app>
    " +
                "  <app>
    " +
                "     <id>3</id>
    " +
                "     <name>google play</name>
    " +
                "     <version>3.1</version>
    " +
                "  </app> 
    " +
                "</apps>";
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            imageView = (ImageView) findViewById(R.id.image);
            parseXMLWithPull(xml);
        }
        private void parseXMLWithPull(String xmlData){
            try {
                XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
                XmlPullParser xmlPullParser = factory.newPullParser();
                //设置输入的内容
                xmlPullParser.setInput(new StringReader(xmlData));
                //获取当前解析事件,返回的是数字
                int eventType = xmlPullParser.getEventType();
                //保存内容
                String id = "";
                String name = "";
                String version="";
                while (eventType != (XmlPullParser.END_DOCUMENT)){
                    String nodeName = xmlPullParser.getName();
                    switch (eventType){
                        //开始解析XML
                        case XmlPullParser.START_TAG:{
                            //nextText()用于获取结点内的具体内容
                            if("id".equals(nodeName))
                                id = xmlPullParser.nextText();
                            else if("name".equals(nodeName))
                                name = xmlPullParser.nextText();
                            else if("version".equals(nodeName))
                                version = xmlPullParser.nextText();
                        } break;
                        //结束解析
                        case XmlPullParser.END_TAG:{
                            if("app".equals(nodeName)){
                                Log.d("输出:", "parseXMLWithPull: id is "+ id);
                                Log.d("输出:", "parseXMLWithPull: name is "+ name);
                                Log.d("输出:", "parseXMLWithPull: version is "+ version);
                            }
                        } break;
                        default: break;
                    }
                    //下一个
                    eventType = xmlPullParser.next();
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

    使用的是pull解析,安卓官方推荐的解析方法

  • 相关阅读:
    e:可以解包多种存档花样的小工具
    Envy-便当的显卡驱动装置脚本
    用 Timer Applet 做 GTD 经管
    Sabayon:治理 GNOME 用户的设置
    网管的心得体会
    WinAPI: WindowFromPoint 获取指定点所在窗口的句柄
    WinAPI: SetLayeredWindowAttributes 设置窗口的透明
    谈谈 Delphi 的类型与指针[1]
    全局探色器
    说到"计算器", 建议大家用它进行"进制转换"
  • 原文地址:https://www.cnblogs.com/Ocean123123/p/10986790.html
Copyright © 2020-2023  润新知