解析 XML文件 到哈希MAP


   解析XML 文件是 android开发中常遇到的需求,以下是一种实现方式。



  xml 文件如下:


    大海
    高山
    草原
    光线
    折影
    幽谷
    大桥
    城市
    五彩
    炫光
    视觉
    平凡之路
    碎花



如何解析呢? android 中通常用PullXmlParser。

    public  Map  parseWallpaperXml2Map( String   filePath ) {


        File file       = new File( filePath);
        InputStream   inStream =null;

        try{

            inStream = new  FileInputStream( file );
            

        }catch( FileNotFoundException e){
            e.printStackTrace();

        }catch( IOException e ){

            e.printStackTrace();
        }
        
        
        Map    redirectionMap = new HashMap ();
        XmlPullParser  parser  = Xml.newPullParser();
        Log.v( TAG, "Begin");
        try{
            parser.setInput( inStream, "UTF-8");
            
            int eventType = parser.getEventType();
            String     resType     = null;
            String     resName     = null;
            String     resText     = null;
            String  drawableName = null;
            String  attriName     = null;
            String  attriValue     = null;
            List valList = null;
            
            while( eventType != XmlPullParser.END_DOCUMENT ){                
                if( XmlPullParser.START_TAG == eventType ){                  
                    resType = parser.getName();
                    
            
                    if( null != resType &&  resType.equalsIgnoreCase("drawable") ){    
                        attriName = parser.getAttributeName(0);
                        attriValue = parser.getAttributeValue(null, attriName);
                        resName = parser.nextText();
                        if( null != resName && attriValue != null ){
               
                                
                                 redirectionMap.put(attriValue, resName);
                        }                            
                    }                       
                }    
                eventType =  parser.next();              
            }
     
            Log.v( TAG, "End");
        }catch(XmlPullParserException e){
            e.printStackTrace();
        }catch( IOException e ){

            e.printStackTrace();
        }
        return redirectionMap;

    }




   至此返回了一个MAP 。这个MAP 中的键值对和 XML 文件中的键值对是一一对应的。


你可能感兴趣的:(android开发)