xml解析与将数据写到xml中
2015-05-26 16:14
302 查看
解析(也就是读取)xml
将数据写到xml中
Element类中,getName()获得标签,getText()获得值(也就是内容)
===========直接上代码了=============
解析xml(用的是Dom4j解析)
package com.xfonline;
import java.io.InputStream;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
class Address
{
private int zipCode;
private String desc;
public int getZipCode()
{
return zipCode;
}
public void setZipCode(int zipCode)
{
this.zipCode = zipCode;
}
public String getDesc()
{
return desc;
}
public void setDesc(String desc)
{
this.desc = desc;
}
}
class Student
{
private int stuNo;
private String stuName;
private int stuAge;
private Address address;
public int getStuNo()
{
return stuNo;
}
public void setStuNo(int stuNo)
{
this.stuNo = stuNo;
}
public String getStuName()
{
return stuName;
}
public void setStuName(String stuName)
{
this.stuName = stuName;
}
public int getStuAge()
{
return stuAge;
}
public void setStuAge(int stuAge)
{
this.stuAge = stuAge;
}
public Address getAddress()
{
return address;
}
public void setAddress(Address address)
{
this.address = address;
}
}
public class Demo
{
// 读取xml
public static void main(String args[]) throws Exception
{
Student stu=readStu();
System.out.println("======================");
}
public static Student readStu() throws Exception
{
Student stu = new Student();
// 1.获取SAXReader对象
SAXReader read = new SAXReader();
InputStream is = ClassLoader.getSystemResourceAsStream("student.xml");
// 2.生成doc对象
Document doc = read.read(is);
// 3.获取根节点 -student节点
Element root = doc.getRootElement();
// 4.获取子节点下面所有的儿子节点
List<Element> sons = root.elements();
// System.out.println(sons.size());
// 5.遍历所有的儿子
for (Element s : sons) {
if (s.getName().equals("stuNo")) {
stu.setStuNo(Integer.parseInt(s.getText()));
}
if (s.getName().equals("stuName")) {
stu.setStuName(s.getText());
}
if (s.getName().equals("stuAge")) {
stu.setStuAge(Integer.parseInt(s.getText()));
}
if (s.getName().equals("address")) {
// 继续遍历address的儿子
List<Element> addressson = s.elements();
Address ad = new Address();
for (Element t : addressson) {
if (t.getName().equals("zipCode")) {
ad.setZipCode(Integer.parseInt(t.getText()));
} else {
ad.setDesc(t.getText());
}
}
// 将Address设置给Student对象
stu.setAddress(ad);
}
}
return stu;
}
}
将数据写到xml中
package com.zrx;
import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
public class WriteDemo {
public static void main(String[] args) throws Exception {
Employee e1 = new Employee(1001, "科比", 1000);
Employee e2 = new Employee(1002, "姚明", 1000);
Employee e3 = new Employee(1003, "詹姆斯", 1000);
Employee e4 = new Employee(1004, "邓肯", 1000);
List<Employee> list = new ArrayList<Employee>();
list.add(e1);
list.add(e2);
list.add(e3);
list.add(e4);
write(list);
}
public static void write(List<Employee> list) throws Exception {
// 创建doc对象
Document doc = DocumentHelper.createDocument();
// 加一个root(根节点)
Element root = doc.addElement("company");
// 添加根节点属性
root.addAttribute("name", "xfonline");
root.addAttribute("id", "xf_00001");
// 遍历。需要在根节点上面添加子节点
for (Employee em : list) {
// 加子节点
Element employee = root.addElement("employee");
// 加子节点属性
if (em.getName().equals("科比")) {
employee.addAttribute("depart",
a22e
"技术部");
}
// 加子节点的子节点(id)
Element id = employee.addElement("id");
id.setText(String.valueOf(em.getId()));
// 加子节点的子节点(name)
Element name = employee.addElement("name");
name.setText(em.getName());
// 加子节点的子节点(salary)
Element salary = employee.addElement("salary");
salary.setText(String.valueOf(em.getSalary()));
}
// 将doc写入文件
// 设置输出的格式
OutputFormat format = OutputFormat.createPrettyPrint();
XMLWriter w = new XMLWriter(new FileOutputStream(".\\src\\emp.xml"),
format);
w.write(doc);
w.flush();
w.close();
}
}
将数据写到xml中
Element类中,getName()获得标签,getText()获得值(也就是内容)
===========直接上代码了=============
解析xml(用的是Dom4j解析)
package com.xfonline;
import java.io.InputStream;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
class Address
{
private int zipCode;
private String desc;
public int getZipCode()
{
return zipCode;
}
public void setZipCode(int zipCode)
{
this.zipCode = zipCode;
}
public String getDesc()
{
return desc;
}
public void setDesc(String desc)
{
this.desc = desc;
}
}
class Student
{
private int stuNo;
private String stuName;
private int stuAge;
private Address address;
public int getStuNo()
{
return stuNo;
}
public void setStuNo(int stuNo)
{
this.stuNo = stuNo;
}
public String getStuName()
{
return stuName;
}
public void setStuName(String stuName)
{
this.stuName = stuName;
}
public int getStuAge()
{
return stuAge;
}
public void setStuAge(int stuAge)
{
this.stuAge = stuAge;
}
public Address getAddress()
{
return address;
}
public void setAddress(Address address)
{
this.address = address;
}
}
public class Demo
{
// 读取xml
public static void main(String args[]) throws Exception
{
Student stu=readStu();
System.out.println("======================");
}
public static Student readStu() throws Exception
{
Student stu = new Student();
// 1.获取SAXReader对象
SAXReader read = new SAXReader();
InputStream is = ClassLoader.getSystemResourceAsStream("student.xml");
// 2.生成doc对象
Document doc = read.read(is);
// 3.获取根节点 -student节点
Element root = doc.getRootElement();
// 4.获取子节点下面所有的儿子节点
List<Element> sons = root.elements();
// System.out.println(sons.size());
// 5.遍历所有的儿子
for (Element s : sons) {
if (s.getName().equals("stuNo")) {
stu.setStuNo(Integer.parseInt(s.getText()));
}
if (s.getName().equals("stuName")) {
stu.setStuName(s.getText());
}
if (s.getName().equals("stuAge")) {
stu.setStuAge(Integer.parseInt(s.getText()));
}
if (s.getName().equals("address")) {
// 继续遍历address的儿子
List<Element> addressson = s.elements();
Address ad = new Address();
for (Element t : addressson) {
if (t.getName().equals("zipCode")) {
ad.setZipCode(Integer.parseInt(t.getText()));
} else {
ad.setDesc(t.getText());
}
}
// 将Address设置给Student对象
stu.setAddress(ad);
}
}
return stu;
}
}
将数据写到xml中
package com.zrx;
import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
public class WriteDemo {
public static void main(String[] args) throws Exception {
Employee e1 = new Employee(1001, "科比", 1000);
Employee e2 = new Employee(1002, "姚明", 1000);
Employee e3 = new Employee(1003, "詹姆斯", 1000);
Employee e4 = new Employee(1004, "邓肯", 1000);
List<Employee> list = new ArrayList<Employee>();
list.add(e1);
list.add(e2);
list.add(e3);
list.add(e4);
write(list);
}
public static void write(List<Employee> list) throws Exception {
// 创建doc对象
Document doc = DocumentHelper.createDocument();
// 加一个root(根节点)
Element root = doc.addElement("company");
// 添加根节点属性
root.addAttribute("name", "xfonline");
root.addAttribute("id", "xf_00001");
// 遍历。需要在根节点上面添加子节点
for (Employee em : list) {
// 加子节点
Element employee = root.addElement("employee");
// 加子节点属性
if (em.getName().equals("科比")) {
employee.addAttribute("depart",
a22e
"技术部");
}
// 加子节点的子节点(id)
Element id = employee.addElement("id");
id.setText(String.valueOf(em.getId()));
// 加子节点的子节点(name)
Element name = employee.addElement("name");
name.setText(em.getName());
// 加子节点的子节点(salary)
Element salary = employee.addElement("salary");
salary.setText(String.valueOf(em.getSalary()));
}
// 将doc写入文件
// 设置输出的格式
OutputFormat format = OutputFormat.createPrettyPrint();
XMLWriter w = new XMLWriter(new FileOutputStream(".\\src\\emp.xml"),
format);
w.write(doc);
w.flush();
w.close();
}
}
相关文章推荐
- Android xml数据的解析
- iOS基础--数据解析(XML)
- 网络请求xml数据,并用pull方式解析
- Android--3种解析XML数据的步骤
- JQuery解析XML数据的几个例子
- ios XML/Jason数据解析
- XML数据的三种解析(JSON方式 , DOM方式 , Sax方式)
- android studio 解析Excel数据格式导入poi-3.17.jar时的一系列报错及处理Failed resolution of: Ljavax/xml/stream/XMLEventFactory,duplicate entry: org/apache/xmlbeans/xml/stream/Location.class,GC overhead limit exceeded
- Dom4j解析XML学习之利用解析的数据进行JDBC操作
- 使用DefaultHandler无法完全解析XML的CDATA数据的问题
- XML.JSON数据接口解析
- 用TBXML解析XML数据
- 解析服务器传来的 XML 格式数据
- Android之异步任务AsyncTask解析XML数据
- 在JSP开发中使用jdom解析临时存放数据的XML文件
- 数据解析(一)解析XML之系统自带NSXMLParse类
- 简介Objective-C解析XML与JSON数据格式的方法
- 通过httpUtils请求网络xml数据进行解析
- Android中XML数据解析
- iOS 详解NSXMLParser方法解析XML数据方法