ITPub博客

首页 > 大数据 > Hadoop > Android中通过代码读取xml文件中的内容

Android中通过代码读取xml文件中的内容

Hadoop 作者:limeng19870314 时间:2014-03-11 23:48:00 0 删除 编辑

    在程序升级的时候,每更新一个版本都要写升级日志,将升级日志放在xml文件中,通过代码来读取是一个较好的方案。

关键类:Resources

关键方法:public int getIdentifier(String name, String defType, String defPackage)

关于具体使用方法,举例如下:

1、updatelog.xml文件位于res/xml/文件夹下:

   

        version="1.0"

        versioncode="1.1">

        1、这个文件在res/xml文件夹下;

        2、这个文件的名字是“updatelog.xml”

        3、这是一个xml文件

   

2、在代码中调用方法如下:

public class ResourcesActivity extends Activity {

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView( R.layout.resources_layout );

        mTextView = ( TextView )findViewById( R.id.textId );

        getFileResources( );

   }

    private void getFileResources( ){

        String packageName = getPackageName( );

        try {

             Resources resources = this.getPackageManager( ).getResourcesForApplication( packageName );

             int resId = resources.getIdentifier( "updatelog", "xml", packageName );

             String log = getUpdatelog( resId, resources );

             int appId = resources.getIdentifier( "action_settings", "string", packageName );

             String appName = resources.getString( appId );

             mTextView.setText( appName + " " + log );

          } catch (NameNotFoundException e) {

            e.printStackTrace();

          }

}

    private String parseTag( XmlResourceParser xml ) throws XmlPullParserException, IOException {

        String result = "Version: "+ xml.getAttributeValue(null, "version") + " " + "VersionCode: " + xml.getAttributeValue(null, "versioncode") + " ";

        int eventType = xml.getEventType( );

        while( ( eventType != XmlPullParser.END_TAG ) || ( xml.getName( ).equals( "log" ) ) ) {

            if( (eventType == XmlPullParser.START_TAG) && ( xml.getName( ).equals( "log" ) ) ) {

                eventType = xml.next( );

                result = result + xml.getText( ) + " ";

            }

            eventType = xml.next( );

        }

        return result;

    }

private String getUpdatelog( int resourceId, Resources resource ) {

        String result = "";

        XmlResourceParser xmlResParser = resource.getXml( resourceId );

        try {

            int eventType = xmlResParser.getEventType( );

            while ( eventType != XmlPullParser.END_DOCUMENT ) {

                if ( ( eventType == XmlPullParser.START_TAG ) && ( xmlResParser.getName( ).equals( "release" ) ) ) {

result = result + parseTag( xmlResParser );

                }

                eventType = xmlResParser.next( );

            }

        } catch (XmlPullParserException e) {

            System.out.println( e.getMessage( ) );

        } catch (IOException e) {

System.out.println( e.getMessage( ) );

        } finally {

xmlResParser.close( );

        }

        return result;

    }

private TextView mTextView = null;

}

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/21490727/viewspace-1111332/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2009-04-26