这个总结源于Java编程思想第四版18.13节的案例:
完整代码地址:
相关Api地址:
由于案例中对的使用XOM并不深入,我也只简单的总结了下
用XOM进行序列化过程:
1.使用Element构建Element之间的关系
2.使用Document传入Element对象,生成Document对象
3.调用Serializer,将Document对象序列化成文档
Element对应XML文档中的标签:
String first = Zhang; String second = San; Element person = new Element("person"); //对应生成的标签:<first>Zhang</first> Element firstName = new Element("first"); firstName.appendChild(first); //对应生成的标签:<last>San</last> Element lastName = new Element("last"); lastName.appendChild(last); /* 对应生成的标签: <person> <first>Zhang</first> <last>San</last> </person> */ person.appendChild(firstName); person.appendChild(lastName);
Document代表着文档,构造时传入Element
Document doc = new Document(person);
Serializer将Document变成文件,其有许多属性可以设置,和XML文档有对应关系
BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream("person.xml")); Serializer serializer = new Serializer(out,"ISO-8859-1"); serializer.setIndent(4); //设置缩进空格数 serializer.setMaxLength(60); //一行最大字符数 serializer.write(doc); //将文件写入 serializer.flush();
用XOM进行反序列化过程:
1.得到Document对象
2.一层一层的剥下标签~
我看案例源代码,这个地方确实是一层一层的在剥标签
Document doc = Builder.build("people.xml"); //这个people与上文的person.xml没有任何关系 Element root = doc.getRootElement(); //得到根标签 Elements elements = root.getChildElements(); //得到根标签下的所有Elements,剥下了案例中的people标签,得到了所有person标签的集合 for(Element element : elements){ first = element.getFirstChild("first"); //剥下first标签 last = element.getFirstChild("last"); //剥下last标签 }