XStream 非常简单实用的XML读写工具(一)
最近工作内容需要对Java对象做XML输出,公司里常用的两种框架是XStream和XML Beans。两种都我都用了,对于普通的,schema不是很复杂的XML文件来说选择XStream更方便。这篇文章先介绍一下XStream的用法,XML Beans的用法另外再介绍。
1. 先给个要输出的xml文档的例子:
<students>
<student>
<name>Peter</name>
<id>1001</id>
<age>15</age>
<student>
<student>
<name>Mike</name>
<id>1002</id>
<age>16</age>
<student>
<students>
2. 首先定义两个类:Students和Student,其中Students有一个List<Student>,Student有三个Field:name,id,age
public class Students {
List studentList;
public Students() {
studentList = new ArrayList();
}
public void addStudent(Student p) {
studentList.add(p);
}
}
public class Student {
private String name, id, age;
public Student(String name, String id, String age){
this.name = name;
this.id = id;
this.age = age;
}
//Setter and Getter for name, id, age
......
}
3. 使用XStream将Object写入XML:
//XStream实例
XStream xStream = new XStream();
//定义xml的根节点"Students"
Students root = new Students();
//定义根节点的两个子节点"Student"
Student peter = new Student("peter", "1001", "15");
Student mike = new Student("mike", "1002", "16");
//添加到根节点上
root.addStudent(peter);
root.addStudent(mike);
//
System.out.println(xStream.toXML(root));
4. 输出的结果和我们的期待的并不完全一样:
<de.dexin.student.Students>
<studentList>
<de.dexin.student.Student>
<name>peter</name>
<id>1001</id>
<age>15</age>
</de.dexin.student.Student>
<de.dexin.student.Student>
<name>mike</name>
<id>1002</id>
<age>16</age>
<
相关文档:
用的是一种很笨的方法,但可以帮助初学者了解访问XML节点的过程。
已知有一个XML文件(bookstore.xml)如下:
<?xml version="1.0" encoding="gb2312"?>
<bookstore>
<book genre="fantasy" ISBN="2-3631-4">
<title>Oberon's Legacy</title>
&n ......
String userId = request.getParameter("userId");
System.out.println(userId);
response.setCharacterEncoding("UTF-8");
//response.getWriter().println("hello world -- 我爱你。。。");
String xml = "<user>" +
"<username>涛哥</username>" +
"</user>";
respon ......
Class.xml
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/css" href="class.css"?>
<bookdetail>
<book class="A">
<author>曹雪芹</author>
<title>红楼梦</title>
<price>60.00</price>
</book>
<book class="A"& ......
xmlpost by HttpWebRequest:
protected string PostXmlToURL(string url,string data)
{
HttpWebRequest hwr = (HttpWebRequest)HttpWebRequest.Create(url);
hwr.Method = "POST";
Stream stream = hwr.GetRequestStream();
StreamWri ......
什么是XML?
XML 代表Extensible Markup Language(eXtensible Markup Language的缩写,意为可扩展的标
记语言)。XML是一套定义语义标记的规则,这些标记将文档分成许多部件并对这些部件加以标识。
它也是元标记语言,即定义了用于定义其他与特定领域有关的、语义的、结构化的标记语言的句法语言。
&n ......