android xml产生和解析
public static void writeToXml(Map<String, Object> map,Writer writer) throws Exception, IllegalStateException, IOException{
XmlSerializer serializer = Xml.newSerializer();
serializer.setOutput(writer);
serializer.startDocument("UTF-8", true);
serializer.startTag(null, "condition");
for(Entry<String, Object> entry:map.entrySet()){
serializer.startTag(null, entry.getKey());
serializer.text(entry.getValue().toString());
serializer.endTag(null, entry.getKey());
}
serializer.startTag(null, "condition");
serializer.endDocument();
writer.flush();
writer.close();
}
public static List<Map<String, Object>> getNurseInfo(String in, String format)
throws Exception {
InputStream inputstream = XjxPublicUnit.StringTOInputStream(in, format); return getNurseInfotomap(inputstream); } public static List<NurseInfo> getNurseInfo(InputStream xml)
throws Exception {
List<NurseInfo> myNurseInfos = null;
NurseInfo myNurseInfo = null; XmlPullParser pullParser = Xml.newPullParser();
pullParser.setInput(xml, "UTF-8"); // 为Pull解释器设置要解析的XML数据
int event = pullParser.getEventType();
while (event != XmlPullParser.END_DOCUMENT) { switch (event) { case XmlPullParser.START_DOCUMENT:
if (myNurseInfo == null) {
myNurseInfo = new NurseInfo();
}
myNurseInfos = new ArrayList<NurseInfo>();//初始化集合
break;
case XmlPullParser.START_TAG: if (myNurseInfo == null && "row".equals(pullParser.getName())) {
myNurseInfo = new NurseInfo();
} if ("jlid".equals(pullParser.getName())) {
myNurseInfo.setJlid(pullParser.nextText());
} if ("lsh".equals(pullParser.getName())) {
myNurseInfo.setLsh(pullParser.nextText());
} if ("rqsj".equals(pullParser.getName())) {
myNurseInfo.setRqsj(pullParser.nextText());
} if ("s".equals(pullParser.getName())) {
myNurseInfo.setS(pullParser.nextText());
} if ("f".equals(pullParser.getName())) {
myNurseInfo.setF(pullParser.nextText());
} if ("JLR".equals(pullParser.getName())) {
myNurseInfo.setJlr(pullParser.nextText());
} if ("bbreathingmachine".equals(pullParser.getName())) {
myNurseInfo.setBbreathingmachine(pullParser.nextText());
} if ("hx".equals(pullParser.getName())) {
myNurseInfo.setHx(pullParser.nextText());
}
if ("sz".equals(pullParser.getName())) {
myNurseInfo.setSz(pullParser.nextText());
}
if ("xybhd".equals(pullParser.getName())) {
myNurseInfo.setXybhd(pullParser.nextText());
}
if ("tk_y".equals(pullParser.getName())) {
myNurseInfo.setTk_y(pullParser.nextText());
} if ("tk_z".equals(pullParser.getName())) {
myNurseInfo.setTk_z(pullParser.nextText());
}
if ("dgfs_y".equals(pullParser.getName())) {
myNurseInfo.setDgfs_y(pullParser.nextText());
}
if ("dgfs_z".equals(pullParser.getName())) {
myNurseInfo.setDgfs_z(pullParser.nextText());
} if ("rl_mc".equals(pullParser.getName())) {
myNurseInfo.setRl_mc(pullParser.nextText());
}
if ("rllx".equals(pullParser.getName())) {
myNurseInfo.setRllx(pullParser.nextText());
}
if ("rl_l".equals(pullParser.getName())) {
myNurseInfo.setRl_l(pullParser.nextText());
} if ("cl_mc".equals(pullParser.getName())) {
myNurseInfo.setCl_mc(pullParser.nextText());
}
if ("rllx".equals(pullParser.getName())) {
myNurseInfo.setCllx(pullParser.nextText());
}
if ("cl_l".equals(pullParser.getName())) {
myNurseInfo.setCl_l(pullParser.nextText());
} if ("rank".equals(pullParser.getName())) {
myNurseInfo.setRank(pullParser.nextText());
}
break;
case XmlPullParser.END_TAG:
if ("row".equals(pullParser.getName())){
myNurseInfos.add(myNurseInfo);//将book添加到books集合
myNurseInfo = null;
}
}
event = pullParser.next();
} return myNurseInfos;
}
public static List<Map<String, Object>> getNurseInfotomap(InputStream inputStream) throws Exception {
List<Map<String, Object>> myNurseInfos = null;
Map<String, Object> myNurseInfo = null; XmlPullParser parser = Xml.newPullParser();
parser.setInput(inputStream, "UTF-8"); int event = parser.getEventType();//产生第一个事件 while(event!=XmlPullParser.END_DOCUMENT){
switch(event){
case XmlPullParser.START_DOCUMENT://判断当前事件是否是文档开始事件
myNurseInfos = new ArrayList<Map<String, Object>>();
break;
case XmlPullParser.START_TAG://判断当前事件是否是标签元素开始事件
if("row".equals(parser.getName())){//判断开始标签元素是否是book
myNurseInfo = new HashMap<String, Object>();
}
if(myNurseInfo!=null){
if (!("row".equals(parser.getName()))){//判断开始标签元素是否是jlid
myNurseInfo.put(parser.getName(),parser.nextText());
}
}
break;
case XmlPullParser.END_TAG://判断当前事件是否是标签元素结束事件
if("row".equals(parser.getName())){//判断结束标签元素是否是book
myNurseInfos.add(myNurseInfo);//将book添加到books集合
myNurseInfo = null;
}
break;
}
event = parser.next();//进入下一个元素并触发相应事件
}//end while
return myNurseInfos;
} package com.xjx.unit; import java.io.ByteArrayInputStream;
import java.io.InputStream; public class XjxPublicUnit { public static InputStream StringTOInputStream(String in,String strFormat) throws Exception{ ByteArrayInputStream is = new ByteArrayInputStream(in.getBytes(strFormat));
return is;
}
}
android xml产生和解析的更多相关文章
- Android XML文档解析(一)——SAX解析
---------------------------------------------------------------------------------------------------- ...
- Android 使用pull,sax解析xml
pull解析xml文件 1.获得XmlpullParser类的引用 这里有两种方法 //解析器工厂 XmlPullParserFactory factory=XmlPullParserFactory. ...
- android XMl 解析神奇xstream 六: 把集合list 转化为 XML文档
前言:对xstream不理解的请看: android XMl 解析神奇xstream 一: 解析android项目中 asset 文件夹 下的 aa.xml 文件 android XMl 解析神奇xs ...
- android XMl 解析神奇xstream 五: 把复杂对象转换成 xml ,并写入SD卡中的xml文件
前言:对xstream不理解的请看: android XMl 解析神奇xstream 一: 解析android项目中 asset 文件夹 下的 aa.xml 文件 android XMl 解析神奇xs ...
- android XMl 解析神奇xstream 四: 将复杂的xml文件解析为对象
前言:对xstream不理解的请看: android XMl 解析神奇xstream 一: 解析android项目中 asset 文件夹 下的 aa.xml 文件 android XMl 解析神奇xs ...
- android XMl 解析神奇xstream 三: 把复杂对象转换成 xml
前言:对xstream不理解的请看: android XMl 解析神奇xstream 一: 解析android项目中 asset 文件夹 下的 aa.xml 文件 android XMl 解析神奇xs ...
- android XMl 解析神奇xstream 二: 把对象转换成xml
前言:对xstream不理解的请看:android XMl 解析神奇xstream 一: 解析android项目中 asset 文件夹 下的 aa.xml 文件 1.Javabeen 代码 packa ...
- android XMl 解析神奇xstream 一: 解析android项目中 asset 文件夹 下的 aa.xml 文件
简介 XStream 是一个开源项目,一套简单实用的类库,用于序列化对象与 XML 对象之间的相互转换. 将 XML 文件内容解析为一个对象或将一个对象序列化为 XML 文件. 1.下载工具 xstr ...
- Android网络之数据解析----SAX方式解析XML数据
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...
随机推荐
- uva 624 CD 01背包打印路径
// 集训最终開始了.来到水题先 #include <cstdio> #include <cstring> #include <algorithm> #includ ...
- glog摘记
projcet url:https://code.google.com/p/google-glog/ usage: application-level logging setting flags GL ...
- c++ primer,友元函数上的一个例子(By Sybase)
本文试图解释c++ primer Screen 和 Window_Mgr的例子,为什么将两个类放在两个文件中无法编译? 将两个类写在同一个文件中,通过三个例子解释问题: 第一种写法问题: 编译到Scr ...
- Oracle database server 安装tips
需要手动解压第二个包的文件合并到第一个包的相同目录中. 以12c为例,需要把 winx64_12102_SE2_database_1of2.zip和winx64_12102_SE2_database_ ...
- JAVA_Gson
package com.qf.mobiletrain01; import java.util.List; import com.google.gson.Gson; import com.google. ...
- 简书APP
找第三方的时候看到简书这个APP,上网搜了一下发现网页版非常的干净,开头的一篇文章就是"你没实力就别心存侥幸",看完也挺有有同感的.文章网址:http://www.jianshu. ...
- [转]在64位的环境中使用VS建立Web项目进行Oracle连接需要注意WebDev是32位的
本文转自:http://www.cnblogs.com/studyzy/archive/2010/10/28/1863056.html 我们平时使用的都是32位的机器进行开发,装的都是32位的软件,但 ...
- [记录]calculate age based on date of birth
calculate age based on date of birth know one new webiste:eval.in run php code
- Airbnb创始人:屌丝的逆袭之路
这位黑发小帅哥名叫Brian Chesky,是Airbnb的联合创始人. 如果在百度一下Airbnb,你就会看到如下事实:Airbnb,即Air Bed and Breakfast,中国名“空中食宿” ...
- Better Completion插件使用
最近学习Bootstrap,发现Sublime text2不支持Bootstrap的代码提示,所以得装一个Bootstrap的代码提示插件.试了好几个之后发现Better-Completion最方便, ...