android学习四:xml
2015-08-05 22:23
501 查看
主要是想简单的学习xml的解析。
服务器端直接放两个xml文件。我们的app客户端通过http get的方式得到两个文件的内容。如下。
person.xml
book.xml
客户端解析下面的数据。
1、使用SAX解析 person.xml
2、使用dom解析book.xml
根据xml可以新建一个类Book
public class Book {
private int id;
private String name;
private float price;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public float getPrice() {
return price;
}
public void setPrice(float price) {
this.price = price;
}
@Override
public String toString() {
return this.id + ":" + this.name + ":" + this.price;
}
}从xml文件里面获取到InputStream。下面对InputStream进行解析。原理不是很了解。但是套用还是可以使用的。
服务器端直接放两个xml文件。我们的app客户端通过http get的方式得到两个文件的内容。如下。
person.xml
<?xml version="1.0" encoding="UTF-8"?> <persons> <person id = "23"> <name>张老师</name> <age>21</age> </person> <person id = "20"> <name>李老师</name> <age>25</age> </person> </persons>
book.xml
<?xml version="1.0" encoding="UTF-8"?> <books> <book id="10"> <name> java </name> <price>12.0</price> </book> <book id="11"> <name> C++ </name> <price>13.0</price> </book> </books>
客户端解析下面的数据。
1、使用SAX解析 person.xml
2、使用dom解析book.xml
根据xml可以新建一个类Book
public class Book {
private int id;
private String name;
private float price;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public float getPrice() {
return price;
}
public void setPrice(float price) {
this.price = price;
}
@Override
public String toString() {
return this.id + ":" + this.name + ":" + this.price;
}
}从xml文件里面获取到InputStream。下面对InputStream进行解析。原理不是很了解。但是套用还是可以使用的。
public List<Book> getBooks(InputStream inputStream) throws Exception { <span style="white-space:pre"> </span>List<Book> list = new ArrayList<Book>(); <span style="white-space:pre"> </span>/** 下面的四个语句基本固定的 */ <span style="white-space:pre"> </span>DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); <span style="white-space:pre"> </span>DocumentBuilder builder = factory.newDocumentBuilder(); <span style="white-space:pre"> </span>Document document = builder.parse(inputStream); <span style="white-space:pre"> </span>Element element = document.getDocumentElement(); <span style="white-space:pre"> </span>/** 每个book节点下面的所有内容的list集合 */ <span style="white-space:pre"> </span>NodeList bookNodes = element.getElementsByTagName("book"); <span style="white-space:pre"> </span>for (int i = 0; i < bookNodes.getLength(); i++) { <span style="white-space:pre"> </span>/** 获取每个book */ <span style="white-space:pre"> </span>Element bookElement = (Element) bookNodes.item(i); <span style="white-space:pre"> </span>Book book = new Book(); <span style="white-space:pre"> </span>/** book的属性 */ <span style="white-space:pre"> </span>book.setId(Integer.parseInt(bookElement.getAttribute("id"))); <span style="white-space:pre"> </span>/** book的子节点 */ <span style="white-space:pre"> </span>NodeList childNodes = bookElement.getChildNodes(); <span style="white-space:pre"> </span>for (int j = 0; j < childNodes.getLength(); j++) { <span style="white-space:pre"> </span>if (childNodes.item(j).getNodeType() == Node.ELEMENT_NODE) { <span style="white-space:pre"> </span>if ("name".equals(childNodes.item(j).getNodeName())) { <span style="white-space:pre"> </span>book.setName(childNodes.item(j).getFirstChild() <span style="white-space:pre"> </span>.getNodeValue()); <span style="white-space:pre"> </span>} else if ("price".equals(childNodes.item(j).getNodeName())) { <span style="white-space:pre"> </span>book.setPrice(Float.parseFloat(childNodes.item(j) <span style="white-space:pre"> </span>.getFirstChild().getNodeValue())); <span style="white-space:pre"> </span>} <span style="white-space:pre"> </span>} <span style="white-space:pre"> </span>} <span style="white-space:pre"> </span>list.add(book); <span style="white-space:pre"> </span>} <span style="white-space:pre"> </span>return list; <span style="white-space:pre"> </span>}
相关文章推荐
- Android学习_01——AutoCompleteTextView控件和MultiAutoCompleteTextView控件的应用
- Android 非空格式验证框架的使用,验证邮箱,非空,2选1等等
- Android json解析--GSON
- android的消息处理机制(图+源码分析)——Looper,Handler,Message
- Android系统开关
- Android Data Binding语法解析(二)
- Android Data Binding语法解析(二)
- Android - Fragment(二)加载Fragment
- 使用Device Farm真机测试Android程序
- Android - Fragment (一)定义
- Android中ViewPager+Fragment的基本使用
- android listView滑动停止后加载图片
- Android Studio的使用
- [Android随笔]内存优化纪录篇
- 我是如何自学Android,资料分享
- 菜鸟学Android(四十四):jsp标签技术简介及jsp标签的开发详解
- android动画
- Android Api Demos登顶之路(二十一)Secure Surface
- Ubuntu下Android真机调试
- Android基础入门教程——2.3.7 ProgressBar(进度条)