- 浏览: 54226 次
- 性别:
- 来自: 北京
博客专栏
-
设计模式
浏览量:7127
文章分类
最新评论
-
alixjiang:
getInstance应该在同步锁的保护之下吧
设计模式-单例模式 -
再_见孙悟空:
就是信息的转发
设计模式-中介者模式 -
DanielHan:
中介者模式中,中介者参与同事角色之间的通信方式,使用的是观察者 ...
设计模式-中介者模式 -
net_hare:
这个和观察者模式有什么区别
设计模式-中介者模式 -
xinglan500:
用代码解释很好哦。多谢博主啦。
JAVA反射机制之一
1.读
LinkMan.java
XmlPullUtil.java
Main.java
2.写
XmlPullUtil.java
Main.java
LinkMan.java
package com.example.xmlpulldemo; public class LinkMan { private String name; private String email; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } }
XmlPullUtil.java
package com.example.xmlpulldemo; import java.io.InputStream; import java.util.ArrayList; import java.util.List; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserFactory; public class XmlPullUtil { private InputStream input; private List<LinkMan> all=null; private String curElement=null; private LinkMan man=null; public XmlPullUtil(InputStream input) { this.input = input; } public List<LinkMan> getAll(){ XmlPullParserFactory factory=null; XmlPullParser parser=null; try { factory=XmlPullParserFactory.newInstance(); parser=factory.newPullParser(); parser.setInput(input, "UTF-8"); int eventType=parser.getEventType();//事件码 while(eventType!=XmlPullParser.END_DOCUMENT){ switch(eventType){ case XmlPullParser.START_DOCUMENT: all=new ArrayList<LinkMan>(); break; case XmlPullParser.START_TAG: curElement=parser.getName(); if(curElement.equals("linkman")){ man=new LinkMan(); } break; case XmlPullParser.TEXT: if(curElement.equals("name")){ man.setName(parser.getText()); }else if(curElement.equals("email")){ man.setEmail(parser.getText()); } break; case XmlPullParser.END_TAG: curElement=parser.getName(); if(curElement.equals("linkman")){ all.add(man); man=null; } break; case XmlPullParser.END_DOCUMENT: break; default: break; } eventType=parser.next(); } } catch (Exception e) { e.printStackTrace(); } return all; }; }
Main.java
package com.example.xmlpulldemo; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.InputStream; import java.util.List; import android.app.Activity; import android.os.Bundle; import android.os.Environment; import android.widget.TextView; import android.widget.Toast; public class Main extends Activity { private TextView name=null; private TextView email=null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); name=(TextView)findViewById(R.id.name); email=(TextView)findViewById(R.id.email); if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){ File file=new File(Environment.getExternalStorageDirectory()+File.separator+"files/addresslist.xml"); if(!file.exists()){//文件不存在 return; } InputStream input=null; try { input = new FileInputStream(file); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } XmlPullUtil util=new XmlPullUtil(input); List<LinkMan> all=util.getAll(); name.setText(all.get(0).getName()); email.setText(all.get(0).getEmail()); }else{ Toast.makeText(this, "没有sdcard", Toast.LENGTH_LONG).show(); } } }
2.写
XmlPullUtil.java
package com.example.xmlpulldemo; import java.io.OutputStream; import java.util.Iterator; import java.util.List; import org.xmlpull.v1.XmlPullParserFactory; import org.xmlpull.v1.XmlSerializer; public class XmlPullUtil { private OutputStream output; private List<LinkMan> all; public XmlPullUtil(OutputStream output,List<LinkMan> all) { this.output=output; this.all=all; } public void save(){ XmlPullParserFactory factory=null; XmlSerializer xs=null; try { factory=XmlPullParserFactory.newInstance(); xs=factory.newSerializer(); xs.setOutput(output, "UTF-8"); xs.startDocument("UTF-8", true); xs.startTag(null, "addresslist"); Iterator<LinkMan> iterator=all.iterator(); while(iterator.hasNext()){ LinkMan man=iterator.next(); xs.startTag(null, "linkman"); xs.startTag(null, "name"); xs.text(man.getName()); xs.endTag(null, "name"); xs.startTag(null, "email"); xs.text(man.getEmail()); xs.endTag(null, "email"); xs.endTag(null, "linkman"); } xs.endTag(null, "addresslist"); xs.endDocument(); xs.flush(); } catch (Exception e) { e.printStackTrace(); } }; }
Main.java
package com.example.xmlpulldemo; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.os.Bundle; import android.os.Environment; import android.widget.Toast; public class Main extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){ File file=new File(Environment.getExternalStorageDirectory()+File.separator+"files/demo.xml"); if(!file.getParentFile().exists()){ file.getParentFile().mkdirs(); } List<LinkMan> all=new ArrayList<LinkMan>(); for(int i=0;i<2;i++){ LinkMan man=new LinkMan(); man.setName("DanielHan"+i); man.setEmail(i+"@qq.com"); all.add(man); } try { XmlPullUtil util=new XmlPullUtil(new FileOutputStream(file), all); util.save(); } catch (FileNotFoundException e) { e.printStackTrace(); } }else{ Toast.makeText(this, "没有sdcard", Toast.LENGTH_LONG).show(); } } }
发表评论
-
Android中path的arcTo方法的使用
2014-09-26 16:28 1158该方法的声明为: void Android.graphics ... -
drawable不同目录你会怎么选择(Android)
2014-09-26 15:18 629可以接触Android的会有一个疑问,为什么res下面会有这么 ... -
android调用手机联系人
2014-09-24 14:11 0一.选择联系人 startActivityForResul ... -
Android中全屏无标题设置
2014-09-24 13:06 546方法一:在java代码中实现 this.requestWi ... -
tools:context的作用
2014-08-05 13:32 578tools:context="activity na ... -
Android平台调用WebService详解
2014-08-05 10:32 497http://blog.csdn.net/lyq8479/ar ... -
Android开发之WebService介绍
2014-08-05 10:31 550http://blog.csdn.net/lyq8479/ar ... -
Handler
2014-07-16 16:43 508Android中有着和J2SE ... -
java中的匿名内部类总结
2014-07-16 14:45 406匿名内部类也就是没有名字的内部类 正因为没有名字,所以匿名内部 ... -
两分钟彻底让你明白Android Activity生命周期(图文)!
2014-07-16 09:39 560大家好,今天给大家详解一下Android中Activity的生 ... -
StateListDrawable资源
2014-07-15 21:18 1271StateListDrawable用于组织多个Draw ... -
Android home键和back键区别
2014-07-15 13:04 782back键 Android的程序无需刻意的去退出,当你一按下手 ... -
ImageView的ScaleType属性
2014-07-15 12:54 971图片说明Andorid中ImageView的不同属性Scale ... -
存储方式三:数据库SQLite(SQLiteOpenHelper)
2014-07-09 18:23 556SQLHelper.java package com.ex ... -
存储方式二:文件(XML SAX解析)
2014-07-08 19:40 374LinkMan.java package com.exam ... -
存储方式二:文件(XML DOM解析)
2014-07-08 19:41 4101.写 package com.example.filed ... -
存储方式二:文件(raw下的文本文件)
2014-07-08 13:47 682package com.example.filedemo; ... -
存储方式二:文件(文本文件)
2014-07-08 13:37 522一.写 FileOutputStream output ... -
存储方式一:SharedPreferences
2014-07-08 10:08 364一.添加数据 SharedPreferences shar ... -
四大组件-ContentProvider
2014-07-07 22:25 0一.简介 ContentProvider即内容提供器, ...
相关推荐
对xml文件进行xmlpull解析 所需要的jar包对xml文件进行xmlpull解析 所需要的jar包对xml文件进行xmlpull解析 所需要的jar包
xmlpull xml解析技术 含jar包
XStream报错 org/xmlpull/v1/XmlPullParserException org.xmlpull.v1.XmlPullParserException
Pull解析XML:Android从服务器端获取XMl文件输入流,并用Pull方式解析,附被解析的XMl文档
XMLpull解析时用到的JAR包,你肯定用得到,对于三种XML解析来说,Pull解析是最适合Android开发的。
xml解析+kxml2+xmlpull.......................................................
工具包包括了:xmlpull_1_1_3_4c.jar;xmlpull_1.1.3.1.jar等。可以解析xml,导入时请将xmlpull_1_1_3_4c.jar;xmlpull_1.1.3.1.jar都导入,不然会报错。
复杂XmlPull解析Demo,适合新手学习使用,
pull解析xml文件,和sax和dom一样 都可以脱离android单独使用,pull和sax的原理一样,不一样的地方是pull读取xml文件后调用方法返回的是数字, 读取到xml的声明返回数字0 START_DOCUMENT; 读取到xml的结束返回数字1 ...
Xml解析中的一种Pull解析,可以学习下。
xmlpull-1.1.3.1.jar和kxml2-2.3.0.jar。支持XMLPULL解析的两个必备JAR包。作者亲测!ok
pull方式xml解析jar包,xmlpull-1.1.3.1.jar和xmlpull-1.1.3.1.jar
xml解析 SAX解析 XML pull解析 DOM解析 包含三种解析方式 全部实现xml pull与stax类似 故省略
解析XML文件:在Android平台上可以使用SAX、DOM和Android附带的pull解析器解析XML文件;pull解析器提供了各种事件,使用parser.next()方法进入下一个元素并触发相应事件,pull解析器产生的事件是一个数字,可以通过...
在java平台上XmlPull的jar包(kxml2-2.3.0.jar,xmlpull-1.1.3.1.jar)
完整的xstream+xmlpull jar包
org.xmlpull.v1.XmlPullParserException: PI must not start with xml (position:unknown @1:5 in java.io.InputStreamReader@47ec2770) org.xml.sax.SAXParseException: PI must not start with xml ...
本文详细讲述了Android平台基于Pull方式对XML文件解析与写入方法。分享给大家供大家参考,...XmlPullParser是一个Java实现的开源API包(源码下载地址http://www.xmlpull.org/),实现了pull方式解析xml文件的方法, And
一、基本介绍 Android中极力推荐xmlpull方式解析xml。 xmlpull不仅可用在Android上同样也适用于javase,但在javase环境中需自己获取xmlpull所依赖的类库,kxml2-2.3.0.jar,xmlpull_1_1_3_4c.jar。 jar包下载网址 ...