Java对象生成Xml和解析Xml(Book)
XML 指可扩展标记语言(eXtensible Markup Language)。
XML 被设计用来传输和存储数据。
这里使用第三方包simple-xml-2.7.1.jar
以一个book对象为例,属性:
ID,书名,作者列表,价格
对象book.java:
package com.newer.xml; import java.io.File; import org.simpleframework.xml.core.Persister; public class App { public static void main(String[] args) { toXml(); // toObject(); } private static void toObject() { // 输入流 File file = new File("b.xml"); // 持久化工具 Persister persister = new Persister(); // file ---> Object(Book.class) try { Book book = persister.read(Book.class, file); System.out.println(book.toString()); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } private static void toXml() { Book b1 = new Book("冰与火之歌", "123", 39); b1.authors.add("乔治"); b1.authors.add("马丁"); b1.authors.add("马丁 2"); b1.authors.add("马丁 3"); // DOM(文档对象模型)、SAX、simple-xml // 持久化类 Persister persister = new Persister(); try { persister.write(b1, new File("b.xml")); persister.write(b1, System.out); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
这里写入了b.xml文件,同时也写了控制台,方便查看,控制台输出如下:
是不是和超文本语言HTML格式很像~
运行接口,解析功能文件App.java:
package com.newer.xml; import java.io.File; import org.simpleframework.xml.core.Persister; public class App { public static void main(String[] args) { toXml(); // toObject(); } private static void toObject() { // 输入流 File file = new File("b.xml"); // 持久化工具 Persister persister = new Persister(); // file ---> Object(Book.class) try { Book book = persister.read(Book.class, file); System.out.println(book.toString()); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } private static void toXml() { Book b1 = new Book("冰与火之歌", "123", 39); b1.authors.add("乔治"); b1.authors.add("马丁"); b1.authors.add("马丁 2"); b1.authors.add("马丁 3"); // DOM(文档对象模型)、SAX、simple-xml // 持久化类 Persister persister = new Persister(); try { persister.write(b1, new File("b.xml")); persister.write(b1, System.out); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }