android 解析XML 生成XML
来源:互联网 发布:java版手机软件下载 编辑:程序博客网 时间:2024/04/26 13:53
android xml解析
Person.java,代码如下
package net.loonggg.test;public class Person {private int id;private String age;private String name;private String sex;private String address;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getAge() {return age;}public void setAge(String age) {this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}@Overridepublic String toString() {return "Person [id=" + id + ", age=" + age + ", name=" + name+ ", sex=" + sex + ", address=" + address + "]";}}
生成xml
/** * 生成xml */private void createXml() {XmlSerializer serializer = Xml.newSerializer();// xml文件生成器File file = new File(Environment.getExternalStorageDirectory(),"person.xml");FileOutputStream fos = null;try {fos = new FileOutputStream(file);serializer.setOutput(fos, "utf-8");// 为xml生成器设置输出流和字符编码serializer.startDocument("utf-8", true);// 开始文档,参数分别为字符编码和是否保持独立serializer.startTag(null, "persons"); // 开始标签,参数分别为:命名空间和标签名for (Person person : list) {serializer.startTag(null, "person");serializer.attribute(null, "id", person.getId() + "");serializer.startTag(null, "name");// 开始标签serializer.text(person.getName());// 文本内容serializer.endTag(null, "name");// 结束标签serializer.startTag(null, "sex");serializer.text(person.getSex());serializer.endTag(null, "sex");serializer.startTag(null, "age");serializer.text(person.getAge());serializer.endTag(null, "age");serializer.startTag(null, "address");serializer.text(person.getAddress());serializer.endTag(null, "address");serializer.endTag(null, "person");}serializer.endTag(null, "persons");// 结束标签serializer.endDocument();// 结束xml文档Toast.makeText(getApplicationContext(), "生成成功!", Toast.LENGTH_SHORT);} catch (Exception e) {Toast.makeText(getApplicationContext(), "生成失败!", Toast.LENGTH_SHORT);e.printStackTrace();} finally {try {fos.close();} catch (IOException e) {e.printStackTrace();}}}
解析xm
/** * 解析xml文件 */private List<Person> pullXml() {try {File file = new File(Environment.getExternalStorageDirectory(),"person.xml");FileInputStream fis = new FileInputStream(file);List<Person> persons = null;Person person = null;XmlPullParser parser = Xml.newPullParser();// 获取xml解析器parser.setInput(fis, "utf-8");// 参数分别为输入流和字符编码int type = parser.getEventType();while (type != XmlPullParser.END_DOCUMENT) {// 如果事件不等于文档结束事件就继续循环switch (type) {case XmlPullParser.START_TAG:if ("persons".equals(parser.getName())) {persons = new ArrayList<Person>();} else if ("person".equals(parser.getName())) {person = new Person();String id = parser.getAttributeValue(0);person.setId(Integer.parseInt(id));} else if ("name".equals(parser.getName())) {person.setName(parser.nextText());} else if ("sex".equals(parser.getName())) {person.setSex(parser.nextText());} else if ("address".equals(parser.getName())) {person.setAddress(parser.nextText());} else if ("age".equals(parser.getName())) {person.setAge(parser.nextText());}break;case XmlPullParser.END_TAG:if ("person".equals(parser.getName())) {persons.add(person);person = null;}break;}type = parser.next();// 继续下一个事件}return persons;} catch (NumberFormatException e) {e.printStackTrace();} catch (FileNotFoundException e) {e.printStackTrace();} catch (XmlPullParserException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}return null;}
调用XML
public class MainActivity extends Activity {private Button btn_create = null;private Button btn_pull = null;private TextView tv_show;private List<Person> list = null;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);btn_create = (Button) findViewById(R.id.createXml);btn_pull = (Button) findViewById(R.id.pullXml);tv_show = (TextView) findViewById(R.id.tvShow);list = new ArrayList<Person>();for (int i = 0; i < 5; i++) {Person person = new Person();person.setAge(i + 20 + "");person.setId(i);person.setName("loonggg" + i);person.setSex("男");person.setAddress("中南海" + i + 1 + "大街");list.add(person);}btn_create.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {createXml();}});btn_pull.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {tv_show.setText(pullXml().toString());}});}}
0 0
- android 解析XML 生成XML
- android 生成xml以及xml解析
- android中XML解析生成
- android xml解析生成探讨
- android xml解析与生成
- dom4j 生成 xml ,解析xml
- Android中的XML解析与生成——Pull解析xml、实现xml文件的生成
- Android之PULL解析和生成XML
- Android中的XML解析和生成
- Android中的XML解析与生成
- android-利用xml解析和生成数据
- Android SAX解析与生成XML
- Android利用pull解析器生成xml
- android xml文件的生成与解析
- Android 解析和生成XML文件
- Android-Sax解析与生成xml数据
- android解析和生成XML文件
- Android使用Pull生成/解析XML文件
- Android N(Android 7.0)版本适配(开发者应该知道的一切新特性与新功能)
- 浙大PAT的大量感悟
- 境外诈骗,最新来自senegal的邮件诈骗
- 使用Ajax实现无刷新用户名验证和分页的效果(一)
- 《C++编程规范——101条规则、准则与最佳实践》笔记002
- android 解析XML 生成XML
- QDU 18 反转数字
- android studio安装Genymotion
- Android 超简便的倒计时实现: CountDownTimer
- 如何配置java环境
- Delphi 10 Seattle小票打印控件TQ_Printer
- leetcode 209. Minimum Size Subarray Sum
- vim插件安装
- javase