插件化—配置xml的辅助测试
1、xml文件,xml文件在res/xml目录下
<?xml version="1.0" encoding="utf-8"?>
<infos>
<city id="1">
<temp>20C/30C</temp>
<weather>多云转晴</weather>
<wind>7-8级</wind>
<name>广州</name>
<pm>200</pm>
</city>
<city id="2">
<temp>25C/30C</temp>
<weather>多云转晴</weather>
<wind>2-3级</wind>
<name>钦州</name>
<pm>100</pm>
</city>
<city id="3">
<temp>20C/30C</temp>
<weather>多云转晴</weather>
<wind>7-9级</wind>
<name>北海</name>
<pm>250</pm>
</city>
</infos>
<?xml version="1.0" encoding="UTF-8"?>
<plugin>
<server>
<className>Demo</className>
<serverName>显示信息</serverName>
<methodName>showDemo</methodName>
</server>
<server>
<className>Demo</className>
<serverName>bbs</serverName>
<methodName>doBbs</methodName>
</server>
</plugin>
2、xml文件
package com.zyh.androidpathtest; import java.util.ArrayList;
import java.util.List; import android.os.Bundle;
import android.app.Activity;
import android.content.res.XmlResourceParser;
import android.text.TextUtils;
import android.view.Menu;
import android.view.View; public class MainActivity extends Activity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
} public void click(View view){
try {
XmlResourceParser parser = getResources().getXml(R.xml.weather);
int type = parser.getEventType();
while(type != XmlResourceParser.END_DOCUMENT){
switch(type){
case XmlResourceParser.START_TAG:
if("infos".equals(parser.getName())){
}else if("city".equals(parser.getName())){
String idStr = parser.getAttributeValue(0);
System.out.println("idStr=" + idStr);
}else if("temp".equals(parser.getName())){
String temp = parser.nextText();
System.out.println("temp=" + temp);
}else if("weather".equals(parser.getName())){
String weather = parser.nextText();
System.out.println("weather=" + weather);
}else if("wind".equals(parser.getName())){
String wind = parser.nextText();
System.out.println("wind=" + wind);
}else if("name".equals(parser.getName())){
String name = parser.nextText();
System.out.println("name=" + name);
}else if("pm".equals(parser.getName())){
String pm = parser.nextText();
System.out.println("pm=" + pm);
}
break;
case XmlResourceParser.END_TAG:
if("city".equals(parser.getName())){
System.out.println("===================================");
}
default:
break;
} type = parser.next();
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} public void click2(View view){
try{
XmlResourceParser parser = getResources().getXml(R.xml.plugin_server);
int type = parser.getEventType();
PluginServer ps=null;
List<PluginServer> pss = null;
while(type != XmlResourceParser.END_DOCUMENT){
switch(type){
case XmlResourceParser.START_TAG:
if(TextUtils.equals("plugin", parser.getName())){
pss = new ArrayList<PluginServer>();
}else if(TextUtils.equals("server", parser.getName())){
ps = new PluginServer();
}else if(TextUtils.equals("className", parser.getName())){
String className = parser.nextText();
ps.setClassName(className);
}else if(TextUtils.equals("serverName", parser.getName())){
String serverName = parser.nextText();
ps.setServerName(serverName);
}else if(TextUtils.equals("methodName", parser.getName())){
String methodName = parser.nextText();
ps.setMethodName(methodName);
}
break;
case XmlResourceParser.END_TAG:
if(TextUtils.equals("server", parser.getName())){
pss.add(ps);
}
break;
default:
break;
}
type = parser.next();
} for(PluginServer pgs : pss){
System.out.println(pgs.toString());
}
}catch(Exception e){
e.printStackTrace();
}
} }
插件化—配置xml的辅助测试的更多相关文章
- 玩转Spring Boot 自定义配置、导入XML配置与外部化配置
玩转Spring Boot 自定义配置.导入XML配置与外部化配置 在这里我会全面介绍在Spring Boot里面如何自定义配置,更改Spring Boot默认的配置,以及介绍各配置的优先 ...
- 2015年12月10日 spring初级知识讲解(二)最小化Spring XML配置 注解
序,随着Spring容器管理Bean数量增加,XML文件会越来越大,而且纯手工配置XML很繁琐,Spring和JAVA都提供了一些注解方式用以简化XML配置. 目录 一.自动装配(autowiring ...
- android studio 汉化 svn插件汉化。布局文件 属性 汉化 public.xml
android studio 汉化 SvnBundle.properties D:\Android Studio\plugins\svn4idea\lib resources_en.jar\org\j ...
- 有关Android插件化思考
最近几年移动开发业界兴起了「 插件化技术 」的旋风,各个大厂都推出了自己的插件化框架,各种开源框架都评价自身功能优越性,令人目不暇接.随着公司业务快速发展,项目增多,开发资源却有限,如何能在有限资源内 ...
- 插件化 VirtualAPK 简介 体验 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- libnetwork插件化网络功能
Docker把网络跟存储这两部分的功能实现都以插件化形式剥离出来,允许用户通过指令来选择不同的后端实现.这也是Docker希望构建围绕着容器的强大生态系统的一些积极的尝试.剥离出来的独立容器网络项目叫 ...
- 360插件化Replugin爬坑之路
前言 继上次爬完了热修复的坑位,中途爬了各种各样的坑.今天我们来说说插件化Replugin的坑位.Replugin刚出的时候我就看过了.第一次看的时候可能心态不好.没看懂= =第二次重头在看,发现蛮简 ...
- Android架构设计之插件化、组件化
如今移动app市场已经是百花齐放,其中有不乏有很多大型公司.巨型公司都是通过app创业发展起来的:app类型更加丰富,有电子商务.有视频.有社交.有工具等等,基本上涵盖了各行各业每个角落,为了更加具有 ...
- android 插件化框架speed-tools
项目介绍: speed-tools 是一款基于代理模式的动态部署apk热更新框架.插件化开发框架: speed-tools这个名字主要指的快速迭代开发工具集的意思. 功能与特性: 1.支持Androi ...
随机推荐
- VS2010/MFC对话框:非模态对话框的创建及显示
非模态对话框的创建及显示 上一节讲了模态对话框及其弹出过程,本节接着讲另一种对话框--非模态对话框的创建及显示. 已经说过,非模态对话框显示后,程序其他窗口仍能正常运行,可以响应用户输入,还可以相互切 ...
- Objective-C浅拷贝和深拷贝
浅拷贝就是对内存地址的复制,让目标对象指针和源对象指向同一片内存空间 如: char* str = (char*)malloc(100);char* str2 = str; 浅拷贝只是对对象的简单拷贝 ...
- [置顶] 基于.NET的快速信息化系统开发框架 — RDIFramework.NET — 系统目录
基于.NET的快速信息化系统开发整合框架 —RDIFramework.NET—系统目录 框架简单介绍 .NET快速开发整合框架(RDIFramework.NET),基于.NET的快速信息化系统开发.整 ...
- iOS --- [持续更新中] iOS移动开发中的优质资源
在我们做iOS APP的开发过程中, 须要非常多设计, 产品, 技术, 运营等方面的技巧和资源. 现将其整理汇总, 本文会一直持续更新. 敬请关注. 设计 Dribbble Dribbble是一个面向 ...
- 飘逸的python - 一个最简单的服务器
python拥有这种单独起一个服务器监听端口的能力,用标准库的wsgiref就行. from wsgiref.simple_server import make_server def simple_a ...
- BlokUI的使用
1.点击弹出层以外的区域关闭弹出层 $(document).ready(function() { $('#demo9').click(function() { $.blockU ...
- C - N皇后问题(搜索)
Description 在N*N的方格棋盘放置了N个皇后,使得它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在与棋盘边框成45角的斜线上. 你的任务是,对于给定的N,求出有多少种合 ...
- [iOS]超详细Apache服务器的配置(10.10系统)
配置目的:有一个自己专属的测试服务器 我们需要做以下事情: 1.新建一个目录,存放网页 2.修改Apache配置文件httpd.conf - 修改两个路径 - 增加一个属性 - 支持PHP脚本 3.拷 ...
- JavaSE学习总结第22天_IO流4
- 22.01 数据输入输出流的概述和讲解 操作基本数据类型 public class DataInputStreamextends FilterInputStream implements Da ...
- Identity-修改Error错误提示为中文
第一步:重写IdentityErrorDescriber public class CustomIdentityErrorDescriber : IdentityErrorDescriber ...