自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

XML 4種解析方式示例

移動開發(fā)
android中XML文件解析方式的一個匯總示例。其中包括dom解析、dom4j解析、pull解析和SAX解析對示例xml文件進(jìn)行解析的具體實現(xiàn)步驟,并有詳細(xì)的注釋。該實例將xml文件解析為實體類,并通過pstView進(jìn)行展現(xiàn)。

功能分類:工具

支持平臺:Android

運行環(huán)境:Eclippse

開發(fā)語言:Java

開發(fā)工具:Eclippse

源碼大?。?3.01MB

源碼簡介

android中XML文件解析方式的一個匯總示例。

其中包括dom解析、dom4j解析、pull解析和SAX解析對示例xml文件進(jìn)行解析的具體實現(xiàn)步驟,并有詳細(xì)的注釋。該實例將xml文件解析為實體類,并通過pstView進(jìn)行展現(xiàn)。

注:其中dom4j解析需要附加類庫:dom4j-1.6.1.jar,壓縮包中給出了完整的dom4j的類庫。如果只做解析,只要引入dom4j-1.6.1.jar即可。

源碼運行截圖

 

    點擊不同按鈕會通過不同方式進(jìn)行解析,不過展示效果相同

    解析完成后通過pstview展現(xiàn)

    點擊條目展現(xiàn)詳細(xì)信息(來自xml文件的內(nèi)容)

 

源碼片段

    /**android內(nèi)置了pull解析,相對dom解析來說pull更省內(nèi)存.*/ 

    pubpc class XmlPullParserUtil { 

      

        pubpc static Arraypst<cdentity> pullParser(InputStream in){ 

            Arraypst<cdentity> cds = null

            try { 

                //構(gòu)建pull解析工廠 

                XmlPullParserFactory factory; 

                factory = XmlPullParserFactory.newInstance(); 

                //構(gòu)建pull解析器對象 

                XmlPullParser parser =  factory.newPullParser(); 

                //設(shè)置解析器的數(shù)據(jù)源 

                parser.setInput(new InputStreamReader(in)); 

                //獲取事件,開始進(jìn)行解析 

                int eventType = parser.getEventType(); 

                //將要生成的CD對象 

                CDEntity entity = null

                //循環(huán)遍歷xml文檔,直到遍歷到文檔末尾 

                while(eventType != XmlPullParser.END_DOCUMENT){ 

                    switch(eventType){ 

                    //在xml文檔開始的時候構(gòu)建Arraypst對象。 

                    case XmlPullParser.START_DOCUMENT: 

                        cds = new Arraypst<cdentity>(); 

                        break

                    //在標(biāo)簽開始時對標(biāo)簽名進(jìn)行判斷 

                    case XmlPullParser.START_TAG: 

                        String name = parser.getName(); 

                        //標(biāo)簽名為CD時,構(gòu)建CD對象 

                        if("CD".equals(name)){ 

                            entity = new CDEntity(); 

                        //如果標(biāo)簽為title,則cd肯定不為空,且獲取到的文本為cd標(biāo)題,則將cd的標(biāo)題屬性設(shè)置為title標(biāo)簽的文本 

                        }else if("TITLE".equals(name)){ 

                            entity.setTitle(parser.nextText()); 

                        }else if("ARTIST".equals(name)){ 

                            entity.setArtist(parser.nextText()); 

                        }else if("COUNTRY".equals(name)){ 

                            entity.setCountry(parser.nextText()); 

                        }else if("COMPANY".equals(name)){ 

                            entity.setCompany(parser.nextText()); 

                        }else if("PRICE".equals(name)){ 

                            entity.setPrice(Float.parseFloat(parser.nextText())); 

                        }else if("YEAR".equals(name)){ 

                            entity.setYear(Integer.parseInt(parser.nextText())); 

                        } 

                        break

                    //標(biāo)簽結(jié)束后,判斷結(jié)束標(biāo)簽是什么。如果cd標(biāo)簽結(jié)束,則生成cd對象完成,應(yīng)該將其添加到Arraypst中 

                    case XmlPullParser.END_TAG: 

                        if("CD".equals(parser.getName())){ 

                            cds.add(entity); 

                        } 

                        break

                    } 

                    //循環(huán)處理結(jié)束后,需要將標(biāo)簽設(shè)置為下一個標(biāo)簽,避免無限循環(huán) 

                    eventType = parser.next(); 

                } 

            } catch (XmlPullParserException e) { 

                e.printStackTrace(); 

            } catch (IOException e) { 

                e.printStackTrace(); 

            } 

            System.out.println(cds); 

            return cds; 

        } 

    </cdentity></cdentity></cdentity> 

源碼下載地址:http://down.51cto.com/data/1968715

責(zé)任編輯:閆佳明 來源: 網(wǎng)絡(luò)整理
相關(guān)推薦

2011-08-08 14:13:47

iPhone XML NSXMLParse

2009-09-09 14:40:15

C# XML解析

2019-12-27 18:07:53

Python網(wǎng)絡(luò)爬蟲HTML

2010-03-05 15:01:29

Python解析XML

2010-08-06 09:38:11

Flex讀取XML

2016-02-16 10:26:58

PythonXML方式

2009-12-02 10:49:59

PHP解析XML元素結(jié)

2011-04-13 14:38:17

2018-04-28 15:51:33

Mybatis方式傳遞

2021-08-10 15:44:37

PostgreSQL表分區(qū)分區(qū)表

2011-06-22 15:21:08

XML

2009-03-31 13:12:30

解析XMLJava

2010-08-03 09:20:33

Flex讀取XML配置

2009-06-11 17:22:03

操作xml方式Java

2020-11-10 10:59:19

大數(shù)據(jù)大數(shù)據(jù)發(fā)展風(fēng)險管理

2018-11-12 10:41:56

物聯(lián)網(wǎng)IoT玩具

2020-10-21 10:37:37

混合云

2010-07-27 15:03:37

Flex ArrayC

2019-04-10 08:24:06

vue組件通信

2010-09-13 12:19:03

點贊
收藏

51CTO技術(shù)棧公眾號