插件化—配置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 ...
随机推荐
- jenkins+maven +svn+tomcat7集群部署(一)
在网上看了好多有关集群部署的文章,感觉都不是太连贯,非常多仅仅是给你说怎么安装而已,可是过程中遇到的问题真不少,可是也攻克了非常多问题,希望我的文章可以帮到那些想学习的人吧,jenkins主要是攻克了 ...
- Scala函数---既存类型
语法: Type ::= InfixType ExistentialClauses ExistentialClauses ::= „forSome‟ „{‟ ExistentialDcl {semi ...
- Android学习笔记(十四)——在执行时加入碎片(附源代码)
在执行时加入碎片 点击获取源代码 将UI切割为多个可配置的部分是碎片的优势之中的一个,但其真正强大之处在于可在执行时动态地把它们加入到活动中. 1.使用上一篇创建的Fragments项目,在main. ...
- Task线程 同时执行多个任务
Task taskTest = Task.Factory.StartNew(() => { Console.WriteLine("); },TaskCreationOptions.No ...
- Jsp中使用EL表达式对字符串进行操作
用fn函数:<%@ taglib prefix="fn" uri="http://Java.sun.com/jsp/jstl/functions" %&g ...
- html 7大知识点
HTML是web前端开发的基础,学习前端的人都是先从html学起的. 关于HTML有一些必备的知识点,这些知识点都是HTML中最基本的内容,也是前端面试最常问的知识点. 1.网页结构网页结构一般都包含 ...
- Software Version --hdu1976
#include using namespace std; int main() { int T; cin>>T; int a1,b1,c1; int a2,b2,c2; while(T- ...
- js中判断按键的方法
// 通过证件号码查询人员基本信息,响应回车事件的js函数, $('#sfwwsss [name="AAC002"]').keydown(function(event) { var ...
- Python学习之路——类
类: 类是将抽象的实物进行的划分. 在现实世界中如果我们将: 人类包含:男人.女人.孩子.老人等动物类包含:小猫.小狗.小兔子等 在代码世界中我也可以分类,例如将相同功能的代码放到一起,这就是分类. ...
- [LeetCode]题解(python):022-Generate Parentheses
题目来源: https://leetcode.com/problems/generate-parentheses/ 题意分析: 题目输入一个整型n,输出n对小括号配对的所有可能性.比如说,如果输入3, ...