xml解析

Posted ocean123123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了xml解析相关的知识,希望对你有一定的参考价值。

public class MainActivity extends AppCompatActivity 
    private RequestQueue queues ;

    ImageView imageView;
    String xml = "<apps>\n" +
            "  <app>\n" +
            "    <id>1</id>\n" +
            "    <name>Google maps</name>\n" +
            "    <version>1.0</version>\n" +
            "  </app>\n" +
            "  <app>\n" +
            "     <id>2</id>\n" +
            "     <name>chrome</name>\n" +
            "     <version>2.1</version>\n" +
            "  </app>\n" +
            "  <app>\n" +
            "     <id>3</id>\n" +
            "     <name>google play</name>\n" +
            "     <version>3.1</version>\n" +
            "  </app> \n" +
            "</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解析,安卓官方推荐的解析方法

以上是关于xml解析的主要内容,如果未能解决你的问题,请参考以下文章

无法解析片段中的 findViewById [重复]

jsoup解析xml某片段的问题

为 Blogger 上的博客格式化代码片段 [关闭]

java解析xml的几种方式哪种最好?

使用非utf-8编码在Python中解析XML

在Tomcat的安装目录下conf目录下的server.xml文件中增加一个xml代码片段,该代码片段中每个属性的含义与用途