Android中生成XML总结
来源:互联网 发布:行政审批系统网络平台 编辑:程序博客网 时间:2024/06/05 05:48
前言:
本章节主要是讲述如何生成XML格式的文件
1>XML实例
XML 文档使用简单的具有自我描述性的语法:
<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
第一行是 XML 声明。它定义 XML 的版本(1.0)和所使用的编码(ISO-8859-1 = Latin-1/西欧字符集)。
下一行描述文档的根元素(像在说:"本文档是一个便签"):
<note>
接下来 4 行描述根的 4 个子元素(to, from, heading 以及 body):
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
最后一行定义根元素的结尾:
</note>
2>XML元素
XML 元素指的是从(且包括)开始标签直到(且包括)结束标签的部分。
一个元素可以包含:
- 其他元素
- 文本
- 属性
- 或混合以上所有...
<bookstore>
<book category="CHILDREN">
<title>Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<book category="WEB">
<title>Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
</bookstore>
<book category="CHILDREN">
<title>Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<book category="WEB">
<title>Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
</bookstore>
在上面的实例中,<bookstore> 和 <book> 都有 元素内容,因为他们包含其他元素。<book> 元素也有属性(category="CHILDREN")。<title>、<author>、<year> 和 <price> 有文本内容,因为他们包含文本。
更多关于XML的详细信息,可参考XML教程;
下面这个示例演示了如何生成一张有关书店XML的文件,然后将其予以保存在本地;
代码示例如下:
MainActivity.java
package com.example.administrator.testobtainxml;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.util.Xml;import android.view.View;import org.xmlpull.v1.XmlSerializer;import java.io.File;import java.io.FileOutputStream;import java.util.ArrayList;public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void xml(View view){ /*** * 模拟生成3本Book对象 * ***/ ArrayList<Book> bookStore = new ArrayList<>(); bookStore.add(new Book("WP","45")); bookStore.add(new Book("IOS","56")); bookStore.add(new Book("Android","67")); XmlSerializer xmlSerializer = Xml.newSerializer(); /*** * 主要用于XML文件的头声明,一般在XML文件的第一行,我们都可以看到类似的格式: * <?xml version="1.0" encoding="ISO-8859-1"?> * * startDocument(String encoding,Boolean standalone) * encoding: * 声明XML文件的编码格式 * * standalone: * 表示该xml是不是独立的,如果是yes, * 则表示这个XML文档时独立的,不能引用外部的DTD规范文件; * 如果是no,则该XML文档不是独立的,表示可以引用外部的DTD规范文档 * ***/ try { /*** * 若存在则打开文件, * 若不存在,则其会自动创建文件; * **/ File file = new File(getFilesDir(),"test.xml"); /*** * 设置XML文件的输出路径 * **/ xmlSerializer.setOutput(new FileOutputStream(file),"utf-8"); /*** * 设置XML的声明部分 * **/ xmlSerializer.startDocument("utf-8",true); /*** * 设置XML的根元素 * ***/ xmlSerializer.startTag(null,"BookStore"); /*** * 设置XML的子元素 * **/ for(int i=0; i<bookStore.size(); i++){ /*** * 子元素的开始标签 * **/ xmlSerializer.startTag(null,"Book"); xmlSerializer.startTag(null,"name"); xmlSerializer.text(bookStore.get(i).getName()); xmlSerializer.endTag(null,"name"); xmlSerializer.startTag(null,"price"); xmlSerializer.text(bookStore.get(i).getPrice()); xmlSerializer.endTag(null,"price"); /*** * 子元素的结束标签 * **/ xmlSerializer.endTag(null,"Book"); } /*** * 根元素的结束标签 * **/ xmlSerializer.endTag(null,"BookStore"); /*** * 结束XML的写操作 * **/ xmlSerializer.endDocument(); } catch (Exception e) { e.printStackTrace(); } }}
Book.java
package com.example.administrator.testobtainxml;/** * Created by Will Smith on 2016/6/28. */public class Book { private String name,price; public Book(String name,String price) { this.name = name; this.price = price; } public String getName() { return name; } public String getPrice() { return price; } public void setName(String name) { this.name = name; } public void setPrice(String price) { this.price = price; }}
运行结果:
将生成的XML文件,用浏览器打开如下:
总结:
1>
对于XML的操作,首先我们应该弄清楚其XML的格式
2>对于XML的写操作,主要是用到了XmlSerializer类来实现,
这样我们就无需手动一点一点地再进行输入,从而更方便快捷;
3>
由于这里用到了SD卡的写文件操作,所以这里记得在AndroidManifest.xml中添加一下写权限
源码:
生成XML示例源码
0 0
- Android中生成XML总结
- android中XML解析生成
- android中 XML的生成
- Android中生成xml文件
- Android中解析XML总结
- Android 中xml文件的生成
- Android中生成xml文件小demo
- android中pull解析xml和生成xml
- Android中string.xml使用总结
- Android中string.xml使用总结
- Android中string.xml使用总结
- Android中string.xml使用总结
- Android中String.xml的使用总结
- Android中string.xml使用总结
- Android中string.xml使用总结
- Android中Xml布局常见属性总结
- android 中theme.xml与style.xml使用总结
- android 解析XML 生成XML
- display:inline、block、inline-block的区别
- 多ip出口vpn
- Consul入门07 - Consul Web界面
- Ajax本地跨域问题
- -我的技术之路
- Android中生成XML总结
- Base64 编码解码C++实现
- textview实现界面跳转
- Android网易评论盖楼效果实现
- 【leetcode】26. Remove Duplicates from Sorted Array
- 《Thinkinginjava》第8章-多态
- 欢迎使用CSDN-markdown编辑器
- Spark Streaming使用Kafka保证数据零丢失
- Hibernate Tools-代码生成